summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
39 hourswayland: make large numbers of buttons in the window list work againHEADmasterAleksey Samoilov1-117/+129
Authored by @lukefromdc
39 hourswayland: implement scroll, middle-click close and urgent highlightsAleksey Samoilov3-2/+158
39 hourswayland/tasklist: implement window reorderingAleksey Samoilov1-1/+131
39 hoursFix use-after-free in Wayland tasklist backendAleksey Samoilov1-1/+16
Remove tasks from the tasklist->tasks list when their window closes and ref/unref XfwWindow objects to avoid stale pointers, fixing a SIGBUS in xfw_window_get_state after a window is closed.
39 hoursFix signatures mismatchAleksey Samoilov1-2/+4
39 hoursRelax libxfce4windowing versionAleksey Samoilov2-4/+4
39 hourswayland: port to libxfce4windowingSunderland9312-1370/+327
4 daysbuild: Distribute meson build files when using autotoolsAleksey Samoilov1-1/+25
2026-08-16build: Fix Wayland auto-detection breaking X11-only buildsVictor Kareh2-6/+19
libxfce4windowing check was a hard error even when Wayland support was only auto-detected. Any X11 without libxfce4windowing would fail to configure entirely. This changes it to only error out if --enable-wayland=yes was explicit and otherwise it just falls back to X11. Also bumped the version requirement to 4.19.4, since that's what XFW_CLIENT_TYPE_PAGER actually needs. Fixes #1572
2026-08-01Add Meson support (#1571)Aleksey Samoilov25-0/+2024
* Add Meson support * Fix libegg submodule configure * generate schemas before install
2026-07-31ci: add libxfce4windowingAleksey Samoilov1-0/+2
2026-07-31cleanupSunderland933-1427/+0
2026-07-31Use libxfce4windowing for handle panel-related procotols, applet fixesSunderland935-487/+396
2026-07-31[Wayland] Add support for ext-workspace-v1 in pagerAleksey Samoilov9-24/+2253
2026-07-27panel: Remove functions that are no longer used with the pack modelVictor Kareh4-96/+1
These functions were part of the old pixel position model and nothing calls them now that we use pack model for positioning.
2026-07-27panel: Update default layout files to use pack-type and pack-indexVictor Kareh6-68/+67
Replace position and panel-right-stick with pack-type and pack-index in all default layout files. Left-side applets use pack-type=start (the default, so it's omitted), right-side applets use pack-type=end. Center zone is empty by default.
2026-07-27data: update pack-index descriptionVictor Kareh1-1/+1
Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/6278658de
2026-07-27panel: Update positions of objects after removal of an objectVictor Kareh1-0/+2
When an object is removed, this obviously changes the layout inside a PanelWidget, so we have to update the positions of all objects. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/f63d91d16
2026-07-27panel: Implement push move for panel objectsVictor Kareh1-66/+103
We simply move all objects before/after us in our pack to the next pack. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/533581210
2026-07-27panel: "Compress" indexes on end of dragVictor Kareh1-0/+46
To make sure the pack indexes never grow forever, recompute them on the end of a drag, starting from 0. This way, we always keep a 0:n range of indexes, instead of x:x+n with a moving x. While it could be argued it should not be needed, it's much simpler than specifically handling some cases where we have to explicitly decrease all indexes, like when moving an object which is moved to another panel, or removing an object from the panel. This is not an action that is urgent to do (since "uncompressed" indexes don't harm in any way), so the end of a drag is a good enough place to call that. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/2256381b6
2026-07-27panel: Implement switch move for panel objectsVictor Kareh1-299/+173
A few points that are worth noticing: - now, when we start a drag, we always consider the drag to be started from the center of the object. This makes it easier to know whether the drag offset means we should move or not. - after we move an object, we have to recompute the positions of the objects on the panel, in pixel size. Else, we won't know how much space there is between two packs, which breaks moving between packs. This uses code that was previously in size_allocate() - most of the decision on whether a switch move is needed is rather simple to understand; it's just a matter of getting the additions/substractions right :-) Note: the code for push move is not yet updated. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/ed1054799
2026-07-27panel: Remove free-move mode for moving objectsVictor Kareh2-75/+0
With the new packed model, free-move does not make any sense: we don't want to move an object to an arbitrary spot; we're only interested in switching/pushing to move an object from one pack to another pack (switching if it's the first/last one, pushing which also push other objects), or inside a specific pack (switching). Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/1652218bb
2026-07-27panel: Fix addition of objects with the new packed modelVictor Kareh9-8/+114
Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/cb29d47f5
2026-07-27panel: Add a center pack type for objectsVictor Kareh2-7/+54
Woo. Of course, moving/adding objects is still a bad idea. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/51757603d
2026-07-27panel: Move to a model where panel objects are all packedVictor Kareh24-102/+346
Instead of positioning objects on specific positions on panels, we pack them all either at the start or the end. This simplifies things a lot, and helps keep clean panels. Note that adding/moving objects is broken right now. For backward compatibility the old position key is still read and used as a fallback. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/6db6be277
2026-07-27panel: Pass the pack style of objects when adding applet to PanelWidgetVictor Kareh20-81/+127
PanelWidget will soon learn how to use this. This commit is much larger than upstream because gnome-panel had a single object loader for all components, but mate-panel loads the pack type from gsettings everywhere. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/9480f4458
2026-07-27panel: When creating an object, explicitly specify how it's packedVictor Kareh10-26/+35
Instead of saying whether it's packed to the end, we pass the real pack method. This will enable us to add centered objects. Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/8804c8b37
2026-07-27panel: Change panel-right-stick (boolean) key to pack-type (enum) in object ↵Victor Kareh3-4/+15
schema This will make it easier to add a way to center objects later on. We'll have a pack-index key soon. Backported from: - https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/446ff991d - https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/f42b54636
2026-06-04panel-applet-frame-dbus: fix crash when applet is removed during background ↵Michael Mestnik1-1/+9
update Cancel any pending background operation when the applet frame is destroyed, and avoid accessing the frame in the callback if the operation was cancelled or failed. Fixes #1557
2026-05-28wncklet: link against libX11 for window preview thumbnailsVictor Kareh1-0/+5
The window-list preview code uses XGetWindowAttributes and XGetWindowProperty to capture window decorations, but the wncklet Makefile was missing the X11 linker flags, causing a build failure. Fixes #1561
2026-05-27window-list: fix HiDPI scaling for preview thumbnailsVictor Kareh1-15/+17
Account for cairo device scale factor when scaling the captured pixbuf to the thumbnail surface, so the entire window content is shown on HiDPI displays.
2026-05-27window-list: always capture fresh pixels for preview thumbnailsVictor Kareh1-7/+12
Use gdk_pixbuf_get_from_window instead of gdk_cairo_set_source_window to avoid stale window content in preview thumbnails.
2026-05-27window-list: show window decorations in preview thumbnailsVictor Kareh1-3/+60
Capture the window manager frame instead of the client window so that preview thumbnails include title bars and borders. Use _NET_FRAME_EXTENTS to strip invisible resize borders from the captured frame.
2026-05-20applet clock: fix proportional fonts by font-feature tabular numbers2387skju1-0/+10
Fixes #1338: The clock-time was jumping (and also the rest of the panel), due to different width of the digits. The font must support this feature, otherwise this fix will not work: Example: Font "Cantarell" OK ; Font "Quicksand" still buggy.
2026-05-19clock: fix memory leaks in EDS event list handlingVictor Kareh1-0/+4
The calendar popup was not freeing the list of events returned by the calendar client after populating the appointment and task views. This caused unbounded memory growth every time the popup was opened.
2026-05-05remove empty po fileEvelyne Harlé1-1/+0
2026-05-05add translation coverage badgeEvelyne Harlé1-0/+2
2026-05-05update pot filesEvelyne Harlé10-4629/+407
remove transifex configuration remove "es_ES" as it is the same as "es" and prevent weblate usage prevent po updates when generating pot files (weblate does that for us)
2026-04-02fish: Fix alternating animation during April FoolsVictor Kareh1-1/+1
During April Fools in the morning, Wanda the fish is expected to show up upside down, with dirty-looking water, as though dead. However, because of the hour comparison, it ends up alternating between the standard animation and the dead fish.
2026-03-31fix memory leaksmbkma2-0/+20
2026-03-12fix memleaksmbkma1-1/+6
2026-03-11Use gint64 to track UNIX timestampsBernhard M. Wiedemann1-1/+1
to make it work after the year 2038 See https://en.wikipedia.org/wiki/Year_2038_problem This patch was done while reviewing potential year-2038 issues in openSUSE.
2026-01-20clock: Add DBus 'activate' callbackVictor Kareh1-0/+19
This allows users to open the clock/calendar popup through DBus, which means we could configure a keybinding for it.
2026-01-20libmate-panel-applet: Bump library version to 2:0:0Victor Kareh1-1/+1
2026-01-20libmate-panel-applet: Register 'Activate' DBus methodVictor Kareh2-0/+32
This in turn emits an 'activate' signal that any applet can connect to and perform whatever action it means to activate in that applet. This allows users to control certain applet functionalities through DBus, like registering new keybindings, or integrating them with other software.
2025-12-05wl-window-list: ensure same behavior with and without show desktop applet in ↵lukefromdc1-2/+15
panel *Note that in the wayland panel the show desktop applet works by using an invocation of the window list backend to send a signal to every window to mimimize or unminimize *This however causes every added button to be counted twice when the show desktop applet is also used *Detect the show desktop applet, and only divide the number of window list buttons by 2 when it is present
2025-10-30wncklet: fix preview window positioning for right & downAndrzej Szombierski1-2/+2
The monitor origin needs to be taken into account.
2025-10-28wayland-window-list: prevent overflow on panel restart and user changes of ↵lukefromdc1-10/+59
available space *Set a sane default width of 1/3 the total panel with on startup *This prevents the panel width from coming up zero or one when GTK gets the allocation with no buttons in it *Always affirmatively show or hide icons and text when adjusting the buttons for width *Get the box the tasklist->outer box is packed into for width calculations *Recompute tasklist width both on adding and removing buttons
2025-10-28wayland-window-list: keep the labels showing a little longerlukefromdc1-3/+3
2025-10-28wayland-window-list: handle the case of a very short tasklistlukefromdc1-6/+16
*Recompute the maximum button width when three fullsize buttons won't fit *Otherwise short tasklists overflow