summaryrefslogtreecommitdiff
path: root/src/core/window.c
Commit message (Collapse)AuthorAgeFilesLines
* window: use only newest available strut propertyAlberts Muktupāvels2022-12-241-57/+89
| | | | | Specification says that older strut properties must be ignored when newer properties are set.
* display: put windows from same client in tab list groupAlberts Muktupāvels2022-10-221-4/+1
| | | | | | | Reuse existing meta_window_same_client function to check if windows are from same client/application. https://gitlab.gnome.org/GNOME/metacity/-/issues/26
* window: do not disable fullscreen for dialogsAlberts Muktupāvels2022-10-031-1/+2
| | | | https://gitlab.gnome.org/GNOME/metacity/-/issues/33
* window: add meta_window_is_focusableAlberts Muktupāvels2022-10-031-2/+8
| | | | | | Based on mutter commits: https://gitlab.gnome.org/GNOME/mutter/-/commit/43633d6b2f6f602ba87956d5c20ee336b8b56236 https://gitlab.gnome.org/GNOME/mutter/-/commit/58d2a674c466b607e18e6c8e129a6cf1646fde7f
* window: return _NET_WM_PID when XRes is not availableAlberts Muktupāvels2022-09-301-0/+3
| | | | | | To use XResQueryClientIds we need XRes 1.2 or newer! https://gitlab.gnome.org/GNOME/libwnck/-/issues/154
* window-props: re-add support for _NET_WM_PIDAlberts Muktupāvels2022-09-301-0/+1
| | | | | | | We will use _NET_WM_PID when xserver does not have XRes extension or its version is too old. This partially reverts 9135966673e9fd430b9e8252abdb9c946295e25b.
* window: remove incorrect mask checkAlberts Muktupāvels2022-03-221-5/+4
| | | | | | XResGetClientPid already checks for XRES_CLIENT_ID_PID_MASK and does that correctly. We were doing direct comparition that would fail if mask would include something else.
* window: offset gravity position by invisible bordersAlberts Muktupāvels2021-07-221-2/+15
| | | | https://gitlab.gnome.org/GNOME/metacity/-/issues/21
* window: fix logically dead code defectAlberts Muktupāvels2021-03-151-3/+9
| | | | | | We assert that at least one of the two directions are set! Coverity CID: #1418266
* window: check XResQueryClientIds return valueAlberts Muktupāvels2020-10-221-5/+12
|
* window: make window_is_terminal privateJasper St. Pierre2020-10-101-6/+5
|
* stack: don't ignore workspace in get_default_focus_windowAlberts Muktupāvels2020-10-101-6/+16
| | | | | | Commit 00b3e2af07a3 stopped using workspace argument. Redo that change to use passed in workspace instead of assuming it is always active workspace.
* window-props: remove support for _NET_WM_PIDAlberts Muktupāvels2020-09-121-1/+0
|
* window: add meta_window_get_client_pidAlberts Muktupāvels2020-09-121-0/+36
|
* window: fix coerced valueMarek Ch2020-09-041-1/+1
| | | | (int) 0.5 = 0, so there always was 0 instead of 50%
* libmetacity: remove shade, stick and above buttonsAlberts Muktupāvels2020-04-301-18/+0
| | | | | | | | | | | | | | | | | 1) These buttons are broken with default GTK theme. As nobody has reported bug I assume these buttons are unused. GTK is default theme type since 3.2.0. 2) These buttons are not supported by client side decorated windows. 3) Few Metacity themes I checked had no icons for these buttons. They had empty draw_ops... 4) These buttons has been removed also from Mutter. Functionality itself is not removed! Still available using window menu and/or keybindings.
* libmetacity: remove appmenu buttonAlberts Muktupāvels2020-04-301-3/+0
| | | | | This button has never been used by Metacity nor by Compiz. Remove everyting related to this button.
* remove reduced-resources settingAlberts Muktupāvels2020-03-271-215/+15
| | | | | | | | | | | | | | | | | | | Reduced resources setting was used to disable minimize effect and to show wireframe when moving or resizing windows. Minimize effect still can be disabled by using enable-animations setting from org.gnome.desktop.interface schema. And if you are really trying to reduce resource usage you probably already have animations disabled. Wireframe mode has not been updated/fixed to work with CSD windows and/or to exclude shadow/resize area from SSD windows. Also quickly testing with and without compositor wireframe sometimes leaves parts of frame on screen. Considering that there has not been any bug report about broken wireframe mode I think it is time to remove it instead of wasting time trying to fix something that nobody is using.
* iconcache: simplify ideal size handlingAlberts Muktupāvels2020-03-261-3/+6
| | | | | ideal_width and ideal_height has always same value, same with ideal_mini_width and ideal_mini_height.
* window: Don't refuse to move focus to the grab windowFlorian Müllner2020-03-221-0/+1
| | | | | | | | | | | | | | | We refuse to move focus while a grab operation is in place. While this generally makes sense, there's no reason why the window that owns the grab shouldn't be given the regular input focus as well - we pretty much assume that the grab window is also the focus window anyway. In fact there's a strong reason for allowing the focus change here: If the grab window isn't the focus window, it probably has a modal transient that is focused instead, and a likely reason for the focus request is that the transient is being unmanaged and we must move the focus elsewhere. https://gitlab.gnome.org/GNOME/mutter/issues/15
* window: do not unfocus on new windowAlberts Muktupāvels2020-03-121-17/+1
| | | | | | | | It doesn't make much sense to globally unset focus when mapping a new window. Based on mutter commit: https://gitlab.gnome.org/GNOME/mutter/-/commit/998d921d418a7e943ea
* window: remove obsolete commentsAlberts Muktupāvels2020-03-061-2/+0
| | | | FOCUSED_WINDOW layer does not exist.
* revert "window: stop updating layers on focus changes"Alberts Muktupāvels2020-03-061-0/+6
| | | | | | This reverts commit 12c4f35ca5a6f596518d50b2b2c647608c3d3410. https://gitlab.gnome.org/GNOME/metacity/issues/8
* edge-resistance: remove dead codeAlberts Muktupāvels2020-03-051-22/+0
| | | | Timeouts are not used since de65967b62d46d6dd01352d5fb5104f88f30d88e.
* window: use idle to ensure or destroy frameAlberts Muktupāvels2020-03-051-38/+46
| | | | | | | | | Changes to remove frame for fullscreen windows have introduced regression - Firefox will cancel fullscreen if it receives focus out event before _NET_WM_STATE property change event. Use idle to ensure or destroy frame after window features are recalculated and window state set.
* window: remove frame from fullscreen windowsAlberts Muktupāvels2020-02-281-4/+2
|
* window: update frame in recalc_window_featuresAlberts Muktupāvels2020-02-281-13/+19
|
* window: track pending unmaps using serialsAlberts Muktupāvels2020-02-281-9/+56
|
* window: add support for _GNOME_WM_STRUT_AREAAlberts Muktupāvels2020-01-301-0/+88
| | | | | | | | 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
* revert "stack: never focus unmanaging windows"Alberts Muktupāvels2019-11-271-1/+2
| | | | | | | | | | | This reverts commit 33a6a39c9a7f1a0d706d79175c7ed157984f3da0. Original commit was: https://gitlab.gnome.org/GNOME/mutter/commit/b3b9d9e1617f350a2a3f3a Commit in metacity was incomplete and because of that also did not reflect what it actually did. Also exactly this part was reverted in mutter - https://gitlab.gnome.org/GNOME/mutter/commit/d99442d6e6b7.
* window: treat CurrentTime as legal timestamp in activationAlberts Muktupāvels2019-10-201-18/+3
| | | | | Based on mutter commit: https://gitlab.gnome.org/GNOME/mutter/commit/5defe574d74eace55bfe9e
* window: add window-type propertyAlberts Muktupāvels2019-10-191-0/+13
|
* window: move shape clipping to MetaSurfaceAlberts Muktupāvels2019-10-181-13/+0
| | | | Shape region might not change when window is resized!
* window: clip shape region to window sizeAlberts Muktupāvels2019-10-131-0/+13
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=627879
* window: change opaque_region type to XserverRegionAlberts Muktupāvels2019-10-131-2/+6
|
* window: change shape_region type to XserverRegionAlberts Muktupāvels2019-10-131-24/+24
|
* window: add meta_window_get_toplevel_xvisualAlberts Muktupāvels2019-10-061-0/+9
|
* window: add shaded propertyAlberts Muktupāvels2019-10-011-0/+13
| | | | | Add shaded property to allow compositor listen for change notifications.
* window: fix frame height for shaded windowsAlberts Muktupāvels2019-09-231-1/+1
|
* window: add meta_window_is_toplevel_mappedAlberts Muktupāvels2019-09-231-0/+6
|
* core: preserve focus across decoration changesAlberts Muktupāvels2019-09-141-0/+3
| | | | | | | | | | | | Changes in window decoration result in the window being reparented in and out its frame. This in turn causes unmap/map events, and FocusOut if the window happened to be focused. In order to preserve the focused window across the decoration change, add a flag so that the focus may be restored on MapNotify. Based on mutter commit: https://gitlab.gnome.org/GNOME/mutter/commit/8dcac664faf03ac2ea382e
* window: add meta_window_get_toplevel_xwindowAlberts Muktupāvels2019-09-131-0/+9
|
* window: add meta_window_reframeAlberts Muktupāvels2019-08-221-0/+36
|
* fix meta_window_titlebar_is_onscreen for titlebar-less windowsOwen W. Taylor2019-08-141-1/+1
| | | | | | | Make the code correspond to the comment - the titlebar can't be offscreen if there's no titlebar. https://bugzilla.gnome.org/show_bug.cgi?id=723580
* window: add support for _GTK_SHOW_WINDOW_MENUAlberts Muktupāvels2019-08-141-0/+16
| | | | | | | | Based on mutter commits: https://gitlab.gnome.org/GNOME/mutter/commit/50b81fe4b9623dd34a1d9 https://gitlab.gnome.org/GNOME/mutter/commit/6513cbb470a145217f524 https://gitlab.gnome.org/GNOME/metacity/issues/5
* menu: change event parameter back to timestampAlberts Muktupāvels2019-08-141-2/+2
| | | | | | | | | | | | | | Commit 37fa0d19f35a replaced gtk_menu_popup with gtk_menu_popup_at_rect to avoid deprecated warning making it more complicated then needed. gtk_menu_popup_at_rect requires two parameters that are not always available. For example we don't have GdkWindow for CSD windows. And next commit will popup menu in response of ClientMessage event where we don't have any info about key and/or button press events. Simplify code by creating fake event in menu.c with minimal data needed for gtk_menu_popup_at_rect. GdkEvent is used to get GdkDevice, button and time. For GdkWindow we can use root window.
* window: avoid deprecated g_get_current_timeAlberts Muktupāvels2019-08-141-31/+11
| | | | | | | https://gitlab.gnome.org/GNOME/glib/commit/626b6f5ea7704af566b598 Replace g_get_current_time with g_get_real_time that has been documented to be functionally equivalent.
* replace mutter with metacityAlberts Muktupāvels2018-09-091-1/+1
|
* util: remove meta_free_gslist_and_elementsAlberts Muktupāvels2018-09-021-2/+2
|
* window: fix a copy/paste errorAlberts Muktupāvels2018-06-161-1/+1
|