summaryrefslogtreecommitdiff
path: root/src/core/window-props.c
Commit message (Collapse)AuthorAgeFilesLines
* window-props: do not spew initial size_hints differencesAlberts Muktupāvels2022-10-031-1/+2
|
* window-props: stop lying about what client window sets or does notAlberts Muktupāvels2022-10-031-5/+9
| | | | | | We are calling meta_set_normal_hints from meta_window_new to initialize size_hints. Claiming that window sets minimum size to zero or that window did not set gravity is wrong and missleading.
* window-props: do not set XSizeHints flagsAlberts Muktupāvels2022-10-031-6/+0
| | | | Keep flags as they were set on client window.
* xprops: simplify size_hints_from_resultsAlberts Muktupāvels2022-10-031-8/+1
|
* window-props: re-add support for _NET_WM_PIDAlberts Muktupāvels2022-09-301-0/+28
| | | | | | | We will use _NET_WM_PID when xserver does not have XRes extension or its version is too old. This partially reverts 9135966673e9fd430b9e8252abdb9c946295e25b.
* window-props: define HAVE_SYS_TIME_HAlberts Muktupāvels2022-09-301-0/+1
| | | | https://gitlab.gnome.org/GNOME/libgtop/-/merge_requests/34
* icon-cache: remove support for KWM_WIN_ICONAlberts Muktupāvels2022-03-191-14/+0
| | | | | According to Debian Code Search only MPlayer sets this property (together with _NET_WM_ICON).
* window-props: don't set override-redirect window as parentAlberts Muktupāvels2021-06-211-0/+10
| | | | | | | | | | | | | | | | | | | | | | Before commit c656c658940d override-redirect windows was not registered with meta_display_register_x_window. This means that Metacity was treating WM_TRANSIENT_FOR hint as invalid if it was pointing to override-redirect window. EWMH specification [1] says that WM_TRANSIENT_FOR property is defined for managed windows and extends its usage for override-redirect windows. Client should set WM_TRANSIENT_FOR on override-redirect window if it is child/popup for another window. As specification does not say anyting about using override-redirect windows as parent for managed windows and because it causes crashes in Metacity ignore WM_TRANSIENT_FOR if it is pointing to override-redirect window. [1] https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm46291029654544 https://gitlab.gnome.org/GNOME/metacity/-/issues/18
* core: use g_memdup2Alberts Muktupāvels2021-03-141-1/+1
|
* window-props: remove support for _NET_WM_PIDAlberts Muktupāvels2020-09-121-75/+0
|
* window-props: use meta_window_get_client_pidAlberts Muktupāvels2020-09-121-7/+11
|
* window-props: change debug message for WM_PROTOCOLSAlberts Muktupāvels2020-06-281-4/+2
|
* window-props: use XResQueryClientIds to get pidAlberts Muktupāvels2020-05-011-0/+47
| | | | | | | | _NET_WM_PID is unreliable! It can be faked or pid might be from different namespace. Ignore _NET_WM_PID and use XResQueryClientIds to get pid. https://gitlab.gnome.org/GNOME/metacity/-/issues/9
* window: update frame in recalc_window_featuresAlberts Muktupāvels2020-02-281-19/+0
|
* window: add support for _GNOME_WM_STRUT_AREAAlberts Muktupāvels2020-01-301-0/+6
| | | | | | | | In addition to existing properties use also new _GNOME_WM_STRUT_AREA property that allows creating struts between monitors. https://mail.gnome.org/archives/wm-spec-list/2018-December/msg00000.html https://gitlab.freedesktop.org/xdg/xdg-specs/merge_requests/22
* window: change opaque_region type to XserverRegionAlberts Muktupāvels2019-10-131-15/+28
|
* window-props: convert WM_CLASS to UTF-8Alberts Muktupāvels2018-11-191-2/+4
| | | | | | | WM_NAME part is fixed differently in 206ef11aa9d09c91 commit. Based on mutter commit: https://gitlab.gnome.org/GNOME/mutter/commit/d62491f46eba748ece82
* compositor: add window_opaque_region_changedAlberts Muktupāvels2017-06-281-1/+1
|
* revert "prevent window self-maximisation"Alberts Muktupāvels2017-04-021-1/+1
| | | | | | | | | This reverts commit 4943d79d6844af3f7fc0a15ceadb69d95c4c5c61. https://bugzilla.gnome.org/show_bug.cgi?id=461927 This bug had two testcases that now seems to work fine. https://bugzilla.gnome.org/show_bug.cgi?id=760510
* window: add decorated propertyAlberts Muktupāvels2017-03-171-0/+5
|
* window: rename meta_window_free to meta_window_unmanageAlberts Muktupāvels2017-03-121-1/+1
|
* util: replace meta_warning with g_warningAlberts Muktupāvels2017-03-101-8/+9
|
* window: parse _NET_WM_WINDOW_OPACITY propertyAlberts Muktupāvels2017-03-061-0/+27
|
* window: parse _NET_WM_OPAQUE_REGION propertyAlberts Muktupāvels2017-03-061-0/+79
| | | | | https://git.gnome.org/browse/mutter/commit/?id=a613a55658c5717481e1f2d34987715d5f0a5ca4 https://git.gnome.org/browse/mutter/commit/src/?id=39357fc242f6a02bab0af0176dc8d842b3d97020
* move sync alarms to be per-window and permanentOwen W. Taylor2017-03-051-0/+2
| | | | | | | | | | | Instead of creating a new alarm each time we resize a window interactively, create an alarm the first time we resize a window and keep it around permanently until we unmanage the window. Doing it this way will be useful when we allow the application to spontaneously generate sync request updates to indicate frames it is drawing. https://bugzilla.gnome.org/show_bug.cgi?id=685463
* window-props: re-evaluate window visibility when making it transientRui Matos2017-03-031-1/+1
| | | | | | | | | In case a window is hidden when we're ordered to make it transient to a different parent we must re-evaluate its visibility status or we'll get into an inconsistent state where the parent is visible and the child isn't. https://bugzilla.gnome.org/show_bug.cgi?id=759297
* window: make determination of attached dialog windows more consistentDan Winship2017-03-021-25/+48
| | | | | | | | | | | | | | | | | | | | | | | Different bits of code were using slightly different checks to test whether a window was an attached dialog. Add a new meta_window_is_attached_dialog(), and use that everywhere. Also, freeze the is-attached status when the window is first shown, rather than recomputing it each time the caller asks, since this could cause problems if a window changes its type after it has already been attached, etc. However, if an attached window's parent is destroyed, or an attached window changes its transient-for, then fix things up by destroying the old MetaWindow and creating a new one (causing compositor unmap and map events to be fired off, allowing the display of the window to be fixed up). Remove some code in display.c that tried to fix existing windows if the gconf setting changed, but which didn't actually do anything (at least under gnome-shell). However, if 654643 was fixed then the new behavior with this patch would be that changing the gconf setting would affect new dialogs, but not existing ones. https://bugzilla.gnome.org/show_bug.cgi?id=646761
* reload_transient_for: avoid xtransient_for loopsDan Winship2017-03-021-7/+26
| | | | | | | | Don't set a window's xtransient_for if it would create a loop. Since this is the only place we ever set xtransient_for, we can therefore assume everywhere else that it does not loop. https://bugzilla.gnome.org/show_bug.cgi?id=647712
* window: fix appears-focused propagation with attached grandchildrenDan Winship2017-03-021-2/+2
| | | | | | | | | | | | | | | | | When detaching/attaching a dialog, we were only updating appears-focused on the parent if the child itself was focused, but in fact, we need to do it if the child has an attached child which is focused too. To simplify the case of detaching a focused subtree from its parent, we change meta_window_propagate_focus_appearance() to use @window->display->focus_window as the window to add/remove as the attached_focus_window, and @window only as the starting point to propagate from. That way we can propagate focus-removal up to @window's (soon-to-be-ex-)ancestors without having to remove it from its descendants as well. https://bugzilla.gnome.org/show_bug.cgi?id=647712
* window: add meta_window_propagate_focus_appearanceAlberts Muktupāvels2017-03-021-0/+6
| | | | | Based on mutter commit: https://git.gnome.org/browse/mutter/commit/?id=f464b85ffc1f55e3551a0227fd614ea39bc33036
* don't do stacking for override-redirect windowsOwen W. Taylor2017-02-271-1/+2
| | | | | | | | | | | Don't add override-redirect windows to MetaStack; we shouldn't be restacking them. Since we *aren't* stacking the override-redirect windows, we need to be careful that to ignore them when looking for the top managed window. http://bugzilla.gnome.org/show_bug.cgi?id=585984
* avoid moving and resizing override-redirect windowsOwen W. Taylor2017-02-271-1/+1
| | | | | | | | | | | | | | | | Override-redirect windows should not be moved or resized by the window manager. - Mark override-redirect windows as already placed to avoid placing them when first shown. - Don't move-resize newly created override-redirect MetaWindow - Don't queue a resize on override-redirect windows when reading their WM_TRANSIENT_FOR hint. - Add g_return_if_fail (!window->override_redirect) to catch unexpected code paths that might result in override-redirect windows being moved or resized. http://bugzilla.gnome.org/show_bug.cgi?id=582639
* don't read most properties for override-redirect windowsAlberts Muktupāvels2017-02-261-17/+26
| | | | | | | Combination of multiple mutter commits: https://git.gnome.org/browse/mutter/commit/?id=fd27647440ca0068450a5a74aadaae15dc065e00 https://git.gnome.org/browse/mutter/commit/?id=10fe91d7044dd53f3c942a89e43288ce1f59c37c https://git.gnome.org/browse/mutter/commit/?id=6190b650564c39b8b70a591f2a68ec3de831b455
* window: add set_icon_geometry() methodFlorian Müllner2017-02-261-6/+9
| | | | | | | | Using a public method for setting the (cached) icon geometry rather than accessing the struct members directly allows setting the icon geometry from extensions. https://bugzilla.gnome.org/show_bug.cgi?id=692997
* window: cache _NET_WM_ICON_GEOMETRYFlorian Müllner2017-02-261-0/+33
| | | | | | | Rather than doing a server round trip each time when retrieving the icon geometry, use the existing property mechanism to cache it. https://bugzilla.gnome.org/show_bug.cgi?id=692997
* window-props: make meta_window_reload_property() staticAlberts Muktupāvels2017-02-261-1/+1
|
* window-props: don't reload INIT_ONLY propertiesAlberts Muktupāvels2017-02-261-0/+3
| | | | | Missing part from mutter commit: https://git.gnome.org/browse/mutter/commit/?id=b87db00fdb550ebb40288dd2f0f76010ab2df554
* window-props: update reload_net_wm_window_typeAlberts Muktupāvels2017-02-261-47/+26
| | | | | Commit a91fda7881f6b038abd8f2a27e326811da6e0b65 did not include all changes from mutter commit a7b7213017441ecc9e44872e2d67f783a4fdefa5.
* window: Remove support for _NET_WM_ICON_NAMEJasper St. Pierre2017-02-261-76/+3
| | | | We don't seem to use it anywhere.
* window-props: use memcmp() to compare GtkBorder structsCosimo Cecchi2017-02-261-11/+2
| | | | | | Saves some code. https://bugzilla.gnome.org/show_bug.cgi?id=744500
* double check whether the user time window was previously usedCarlos Garnacho2017-02-261-0/+11
| | | | | | | | | | | | | Some applications like Wine may choose to juggle the same user time window across different toplevels, in that case we receive warnings when trying to register the window a second time, leading to wrong accounting. If the window was already used as the user time window for another toplevel, unset it from the previous MetaWindow owner, and unregister so the registration with the new MetaWindow is successful. https://bugzilla.gnome.org/show_bug.cgi?id=774330
* errors: simplify codeAlberts Muktupāvels2016-05-251-2/+2
|
* build: Use non-deprecated feature test macrosDmitry Shachnev2016-03-171-1/+1
| | | | | | | | | | | _SVID_SOURCE has been deprecated in newer versions of glibc breaking -WError; the recommended replacement of _DEFAULT_SOURCE is fairly new, so switch to _XOPEN_SOURCE instead. Based on mutter commits b159d6a5e17219557574defb6c3788d9b0c39757 and b159d6a5e17219557574defb6c3788d9b0c39757. https://bugzilla.gnome.org/show_bug.cgi?id=763782
* window-props: fix build warningsAlberts Muktupāvels2015-09-201-0/+1
|
* window-props: increase window title length in debug messagesAlberts Muktupāvels2015-04-031-6/+1
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=746898
* require xsync and xshape at build timeAlberts Muktupāvels2015-02-191-2/+0
|
* core: Update frame style when _GTK_THEME_VARIANT changesFlorian Müllner2014-10-081-0/+3
| | | | | | | | | | | When the _GTK_THEME_VARIANT property changes, rather than just updating the window's theme_variant property, update its frame style as well, so that the window decoration reflects the requested variant. As the initial properties of a window may be read before its frame is created, there will be cases where the change is not picked up initially. https://bugzilla.gnome.org/show_bug.cgi?id=645355
* window: Parse _GTK_THEME_VARIANT propertyFlorian Müllner2014-10-081-0/+29
| | | | | | | | | | | | Since version 3.0, GTK+ has support for style variants. At the moment, themes may provide a dark variant, which can be requested by applications via GtkSettings. The requested variant is exported to X11 via the _GTK_THEME_VARIANT property - support this property, in order to pick up the correct style variant in the future. https://bugzilla.gnome.org/show_bug.cgi?id=645355 NOTE: Patch is adapted for metacity.
* remove trailing whitespaceAlberts Muktupāvels2014-10-051-47/+47
|
* add support for _GTK_FRAME_EXTENTSAlberts Muktupāvels2014-10-051-0/+68
| | | | Support for _GTK_FRAME_EXTENTS are based on mutter.