| Age | Commit message (Collapse) | Author | Files | Lines |
|
These functions were part of the old pixel position model and nothing
calls them now that we use pack model for positioning.
|
|
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.
|
|
Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/6278658de
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/cb29d47f5
|
|
Woo. Of course, moving/adding objects is still a bad idea.
Backported from https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/51757603d
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
Use gdk_pixbuf_get_from_window instead of gdk_cairo_set_source_window to
avoid stale window content in preview thumbnails.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
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)
|
|
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.
|
|
|
|
|
|
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.
|
|
This allows users to open the clock/calendar popup through DBus, which
means we could configure a keybinding for it.
|
|
|
|
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.
|
|
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
|
|
The monitor origin needs to be taken into account.
|
|
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
|
|
|
|
*Recompute the maximum button width when three fullsize buttons won't fit
*Otherwise short tasklists overflow
|
|
|
|
*Do not hide text and retain icons, that's not what we do in x11
*Hide the icons first, only hide labels when ellipsized text can no longer fit
*ensure last buttons don't over-expand as windows are closed
*divide available panel space by number of buttons to set size of empty buttons on crowded panel
*This more evenly fills the window list when a crowded window list forces empty buttons
*and allows far more buttons to show before the window list pushed other applets off the panel
|
|
The Appointments and Tasks expanders in the calendar popup were
incorrectly linked to the show-calendar-events and show-tasks gsettings.
This caused collapsing the section to toggle the preference, making the
entire section disappear on next popup.
Fixed by adding a new expand-calendar-events and expand-tasks gsettings
keys to track the UI state separately from whether the section is
visible or not.
|
|
Evolution tracks a color for each calendar. We can fetch this to
differentiate events from multiple calendars in the popup.
This also marks the current event in bold and scrolls the window to make
it visible to the user on load.
|
|
Launcher buttons now respond to HiDPI scale factor changes to ensure
icons are reloaded at the new scale when settings change without having
to restart.
|
|
Panels now respond to HiDPI scale factor changes without requiring
a restart. When the monitors-changed signal is received, the panel
updates its scale factor and forces applets to redraw at the new scale.
The temporary size change (to 0 and back) is necessary because applets
don't individually listen to scale change signals.
This eliminates the need for mate-settings-daemon to kill and restart
mate-panel when the scale factor changes.
|
|
mate-panel uses libsoup indirectly through libmateweather, which already
requires libsoup-3.0. Evolution Data Server (used by the clock applet
for calendar integration) also requires libsoup-3.0.
|
|
|
|
* clock: Store calendar client in ClockData
This simplifies the evolution calendar client architecture and makes the
popup show up faster, since we don't need to create a new one every time
we open it.
* clock: Fix calendar data refresh when opening popup
The calendar popup was not showing recently added Evolution
events/tasks. Added a refresh timeout call every time the calendar popup
opens. That way the popup opens immediately and the data is refresh
after a small delay.
|
|
|
|
A previous overzealous cleanup left some hanging screen variables and
one instance of an uninitialized screen being used.
|
|
Recent versions of libwnck introduced a WnckHandler object to be used as
the main entry point into the library.
|
|
*Disable grabbing and moving panels in wayland due to tendency of panel other than on top to jump to top or left
*Note that nonexpanded panels in wayland cannot be dragged along the screen edge as we have their centered position hardcoded using gtk-layer-shell at this time
|
|
There are no distros (that I could find) that ship both an old
libwnck<3.32.0 with a new MATE>=1.28. Dropping this should be safe and
removes complexity.
Since all of these were already wrapped inside HAVE_X11, it should not
affect Wayland at all.
|