summaryrefslogtreecommitdiff
path: root/src/core
AgeCommit message (Collapse)AuthorFilesLines
2019-06-16window: Parse _GTK_THEME_VARIANT propertyVictor Kareh4-0/+27
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 marco. upstream commit: https://gitlab.gnome.org/GNOME/metacity/commit/341d0945
2019-06-16MetaFrameBorders: Add meta_frame_borders_clearVictor Kareh1-0/+34
Just a quick little commit to help clean things up for when we add invisible borders. Additionally, do a little housekeeping in preview-widget as well. https://bugzilla.gnome.org/show_bug.cgi?id=644930 NOTE: Patch copied from metacity and adapted for marco. upstream commit: https://gitlab.gnome.org/GNOME/metacity/commit/7d519b3f
2019-06-16Replace public MetaFrameGeometry with MetaFrameBordersVictor Kareh8-213/+181
There were actually *two* MetaFrameGeometry structs: one in theme-private.h, one in frame.h. The latter public struct was populated by a mix of (void*) casting and int pointers, usually pulling directly from the data in the private struct. Remove the public struct, replace it with MetaFrameBorders and scrap all the pointer hacks to populate it, instead relying on both structs being used in common code. This commit should be relatively straightforward, and it should not do any tricky logic at all, just a sophisticated find and replace. https://bugzilla.gnome.org/show_bug.cgi?id=644930 upstream commit: https://gitlab.gnome.org/GNOME/metacity/commit/72224a165 NOTE: Patch copied from metacity and adapted for marco.
2019-06-16window: avoid clang warning: garbage valuePablo Barciela1-9/+15
avoid Clang static analyzer warning: core/window.c:3580:34: warning: The right operand of '+' is a garbage value new_w = window->rect.width + fgeom.left_width + fgeom.right_width; ^ ~~~~~~~~~~~~~~~~
2019-06-16ui: always set the frame background to NoneGiovanni Campagna1-13/+0
This way the xserver never paints the frame background, even if the client window is destroyed. This allows us to have clean destroy window animation. There is no problem with interactive resizing because applications are using the XSync protocol, so we're not painting unless the client has redrawn. https://bugzilla.gnome.org/show_bug.cgi?id=734054 origin commit: https://gitlab.gnome.org/GNOME/metacity/commit/78c283c
2019-04-24window: set atom__NET_WM_STATE_FOCUSED for meta_window_appears_focusedraveit651-1/+1
2019-04-24window: make docks and spashscreens appear focusedraveit651-1/+9
Set the NET_WM_STATE_FOCUSED property on windows of type dock or spashscreen so that they don't get the state GTK_STATE_FLAG_BACKDROP set by default. Based on: https://gitlab.gnome.org/GNOME/metacity/commit/b3ef887 origin xfwm4 commit: https://git.xfce.org/xfce/xfwm4/commit/?id=0feb29e78bb3
2019-03-06Do not judge whether the window is decorated or notzhuyaliang1-1/+0
2019-03-06screen: Fix use of memory after it is freedPablo Barciela1-2/+1
Fixes Clang static analyzer warning: core/screen.c:754:16: warning: Use of memory after it is freed result = g_list_prepend (result, info); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-03-05[Security] Use 'g_strlcpy' instead of 'strcpy'Pablo Barciela2-4/+5
Fixes Clang static analyzer warnings: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
2019-01-31screen: Remove get_current_monitor in favor of get_current_xineramaVictor Kareh3-42/+6
Since xinerama already contains information on the monitor and its rectangle, there is no need to go through Gdk to get this information again.
2019-01-31Increase icon size on tab and workspace popupsVictor Kareh2-6/+47
Alt+Tab and Workspace popups should be sized relative to the monitor size. This way they look nice and large regardless of the display resolution. Also, given much larger modern resolutions, icon sizes should be larger by default.
2019-01-15screen: avoid 'NULL' in 'meta_error_trap...' functionsPablo Barciela1-2/+4
Fixes https://github.com/mate-desktop/marco/issues/445
2019-01-13prefs: avoid deprecated 'g_settings_list_keys'Pablo Barciela1-3/+15
2019-01-07'meta_error_trap_push' instead 'meta_error_trap_push_with_return'Pablo Barciela8-30/+22
both functions have the same code
2019-01-07errors.c: avoid deprecated 'gdk_error_trap...' functions:Pablo Barciela1-4/+5
avoid deprecated: gdk_error_trap_push gdk_error_trap_pop_ignored gdk_error_trap_pop
2018-08-28add support for app-menu button in themeAlberts Muktupāvels1-0/+2
Add app-menu button support in themes. This is done only to support metacity theme format 3.5 version. Marco will not show this button! Based on metacity commit: https://gitlab.gnome.org/GNOME/metacity/commit/6a2cc159
2018-08-28remove option to attach modal dialogsVictor Kareh1-6/+0
This was added only to add support for metacity theme format version 3.2. Adapted from metacity for marco origin commit: https://gitlab.gnome.org/GNOME/metacity/commit/d2b13461
2018-08-28theme: replace mutter/metacity with marcoVictor Kareh1-2/+2
2018-08-28tabpopup.c: always show 5px outline borderVictor Kareh1-35/+13
Adapted from metacity for marco Origin commit: https://gitlab.gnome.org/GNOME/metacity/commit/aab7b07a Author: Alberts Muktupāvels <[email protected]> Date: Fri Oct 3 19:57:08 2014 +0300
2018-08-28Don't show the ws switcher if we only have oneVictor Kareh1-0/+4
Origin: Ubuntu Bug: https://bugzilla.gnome.org/show_bug.cgi Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/metacity/+bug/506944 Author: Didier Roche <[email protected]>
2018-08-28Add frame type for attached modal dialogsOwen W. Taylor1-2/+6
Add a new frame type META_FRAME_TYPE_ATTACHED which is used for attached modal dialogs. The theme format version is bumped to 3.2, and attached windows can have borders defined in a metacity-theme-3.xml as: <window version=">= 3.2" type="attached" style_set="[name]"/> If no style is defined for "attached", drawing will fall back to the "border" type. https://bugzilla.gnome.org/show_bug.cgi?id=592382 NOTE: Patch copied from mutter and adapted for metacity.
2018-08-28Optionally attach modal dialogsMaxim Ermilov6-1/+165
Add a preference /apps/mutter/general/attach_modal_dialogs. When true, instead of having independent titlebars, modal dialogs appear attached to the titlebar of the parent window and are moved together with the parent window. https://bugzilla.gnome.org/show_bug.cgi?id=612726 NOTE: Patch copied from mutter and adapted for metacity.
2018-08-28Add meta_window_get_transient_for() methodDavyd Madeley1-0/+23
NOTE: Patch copied from mutter and adapted for metacity.
2018-04-29Correct resize popup position on HiDPI displaysVictor Kareh1-2/+5
2018-03-26Scale cursor size for HiDPIVictor Kareh1-1/+5
2018-03-08Fix mismatched enums in keybinding detection for switch-panels and ↵Victor Kareh1-0/+4
switch-panels-backward
2018-02-26window: add _NET_WM_STATE_FOCUSED hint to _NET_WM_STATEmonsta2-5/+19
ported from: https://github.com/GNOME/metacity/commit/4ccb99a50c54f345c4c7d9ac77f1ea76bc6c7c74
2018-02-13Fixes move_to_center moving window between monitorsOmar Zeidan1-1/+5
2018-01-28require GTK+ 3.22 and GLib 2.50monsta1-9/+0
2018-01-15Small bugfix for the move_to_X keybindsOmar Zeidan2-2/+2
2018-01-15Bugfix for monitors of different sizesOmar Zeidan1-12/+20
2018-01-15Restructured monitor keybinds and adjust save_rectOmar Zeidan3-30/+74
2018-01-15Implemented simple shourtcuts to move window to another monitorOmar Zeidan1-0/+41
2018-01-02Fix wrong result in meta_window_titlebar_is_onscreen() for windows without a ↵Björn Weber1-1/+1
frame
2018-01-02Add support for gtk3 _GTK_SHOW_WINDOW_MENU eventBjörn Weber3-0/+23
2018-01-02Implemented a setting to disable top tilingOmar Zeidan2-14/+31
2018-01-01Implemented tabpopup when moving window to different workspaceOmar Zeidan2-43/+73
2017-12-31keybindings.c: Fix build warning:Pablo Barciela1-1/+2
assignment discards ‘const’ qualifier from pointer target type
2017-12-30Reset tile_resized to false when fullscreeningOmar Zeidan1-1/+6
After resizing a tiled window, tile_resized gets set to true. Since it never got set back to false when fullscreening, it lead to weird behavior when unfullscreening the window.
2017-12-20Fixes windows not going to save_rect when unmaximimizingOmar Zeidan2-1/+5
2017-12-20Allow horizontal and vertical resizing when corner tiledOmar Zeidan4-123/+207
2017-12-20Fixes window getting reset to saved_rect when untiling from cornerOmar Zeidan2-3/+4
2017-12-20Implemented simple corner tiling by mouse dragOmar Zeidan6-49/+121
2017-11-10Add stricter logic for running without XPresent supportVictor Kareh2-9/+4
2017-11-10XPresent extension support - first passVictor Kareh2-4/+9
2017-08-30Store a window flag when user resizes from tiledVictor Kareh4-1/+15
Use that flag to retain the correct window size when performing other operations. Reset when re-tiling.
2017-08-29Allow tiled windows to be resized horizontallyVictor Kareh2-4/+33
Determine whether the user is initiating a resize action on a tiled window. If the user is trying to grab the window for resizing horizontally from the edge that's farther away from the screen edge, allow the resize to occur. Otherwise maintain the current tile geometry. Also modified the window hints to allow resizing from the window menu. Fixes #250
2017-08-14display: don't use deprecated GDK_DEVICE_MANAGERraveit651-2/+14
use GtkSeat for > gtk+-3.20
2017-08-14Fix synthetic keybinding/button-grab window (#342)Victor Kareh2-0/+22
* Determine focused window when processing synthetic events When a client is passively grabbing keybindings that it does not need, it sends them up for other clients to process. Often in this situation, the event contains the wrong window (either root, for global keybindings, or the original client itself). This means that Marco will attempt to process the event for the wrong window. This is not an issue for global keybindings within Marco, as the focused window does not matter. However, for shortcuts that operate directly on specific windows, the event gets lost. This change addresses this by determining what the currently-focused window is, regardless of which client forwarded the event. * Determine window under pointer when processing synthetic events When a client is passively grabbing mouse clicks that it does not need, it sends them up for other clients to process. Often in this situation, the event contains the wrong window (either root, for global keybindings, or the original client itself). This means that Marco will attempt to process the event for the wrong window. This change addresses this by determining what the current window under the mouse pointer is, regardless of which client forwarded the event. * Remove unused development data