commit muffin for openSUSE:Factory
Hello community, here is the log from the commit of package muffin for openSUSE:Factory checked in at 2018-04-26 13:37:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/muffin (Old) and /work/SRC/openSUSE:Factory/.muffin.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "muffin" Thu Apr 26 13:37:16 2018 rev:14 rq:599337 version:3.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/muffin/muffin.changes 2017-11-10 14:55:55.575270803 +0100 +++ /work/SRC/openSUSE:Factory/.muffin.new/muffin.changes 2018-04-26 13:37:16.741734593 +0200 @@ -1,0 +2,25 @@ +Thu Apr 19 20:07:54 UTC 2018 - sor.alexei@meowr.ru + +- Update to version 3.8.0: + * Remove gsettings key org.cinnamon.muffin button-layout. + * Fix an issue where window turns to a solid coloured rectangle + during the destroy animation. + * window: Stop updating layers on focus changes. + * window: Do not unfocus on new window. + * window.c: always notify when tile-type property changes. + * Fixes workspace animation direction for grid systems. + * window-props.c: Don't scale GTK_FRAME_EXTENTS, it comes + already-scaled from Gtk (as of GTK+ 3.15.1). + * MetaWindow: Support gtk edge constraints (restores csd-window + resizing while tiled or snapped.) + * atomnames.h: Move xapp atoms to non-EWMH list (they're actually + named wrong but it's sort of late now). + * window.c: catch X errors when setting gtk constraints. + An error can occur when closing a tiled csd window. + It's likely that because of how closing occurs on these type + windows (we respond to it, we don't initiate it) that the XID + may be invalid by the time we move to update its properties. + * meta-window-group: Report a paint volume. + * meta-background: Report a paint volume. + +------------------------------------------------------------------- Old: ---- muffin-3.6.0.tar.gz New: ---- muffin-3.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ muffin.spec ++++++ --- /var/tmp/diff_new_pack.sSfvxR/_old 2018-04-26 13:37:17.437709086 +0200 +++ /var/tmp/diff_new_pack.sSfvxR/_new 2018-04-26 13:37:17.437709086 +0200 @@ -1,7 +1,7 @@ # # spec file for package muffin # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,12 +20,12 @@ %define sover 0 %define typelib typelib-1_0-MetaMuffin-0_0 Name: muffin -Version: 3.6.0 +Version: 3.8.0 Release: 0 Summary: Cinnamon Desktop default window manager -License: GPL-2.0+ AND MIT +License: GPL-2.0-or-later AND MIT Group: System/GUI/Other -Url: https://github.com/linuxmint/muffin +URL: https://github.com/linuxmint/muffin Source: https://github.com/linuxmint/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz # PATCH-FIX-OPENSUSE muffin-svid-default-source.patch marguerite@opensuse.org -- Change _SVID_SOURCE to _DEFAULT_SOURCE. Patch0: %{name}-svid-default-source.patch @@ -121,7 +121,7 @@ find %{buildroot} -type f -name "*.la" -delete -print %fdupes %{buildroot} -%if 0%{?suse_version} <= 1320 +%if 0%{?suse_version} < 1500 %post %glib2_gsettings_schema_post @@ -134,7 +134,8 @@ %postun -n %{soname}%{sover} -p /sbin/ldconfig %files -%doc AUTHORS COPYING README README* rationales.txt debian/changelog +%license COPYING +%doc AUTHORS README README* rationales.txt debian/changelog %{_bindir}/%{name}* %{_libdir}/%{name}/ %exclude %{_libdir}/%{name}/Meta-Muffin.0.typelib ++++++ muffin-3.6.0.tar.gz -> muffin-3.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/.circleci/config.yml new/muffin-3.8.0/.circleci/config.yml --- old/muffin-3.6.0/.circleci/config.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/muffin-3.8.0/.circleci/config.yml 2018-04-20 13:16:00.000000000 +0200 @@ -0,0 +1,70 @@ +version: 2.0 + +shared: &shared + + steps: + + - checkout + + - run: + name: Prepare environment + command: apt-get update + + - run: + name: Install dependencies + command: | + wget https://github.com/linuxmint/cinnamon-desktop/releases/download/master.${CIRCLE_JOB}/packages.tar.gz -O cinnamon-desktop.tar.gz + ls *.tar.gz | xargs -i tar zxvf {} + apt install --yes --allow-downgrades ./packages/*.deb + rm -rf packages + + - run: + name: Build project + command: mint-build -i + + - run: + name: Prepare packages + command: | + if [ -z $CI_PULL_REQUEST ]; then + mkdir /packages + mv /root/*.deb /packages/ + git log > /packages/git.log + cd / + tar zcvf packages.tar.gz packages + fi + + - run: + name: Deploy packages to Github + command: | + if [ -z $CI_PULL_REQUEST ]; then + wget https://github.com/tcnksm/ghr/releases/download/v0.5.4/ghr_v0.5.4_linux_amd6... + apt-get install --yes unzip + unzip ghr_v0.5.4_linux_amd64.zip + TAG="master".$CIRCLE_JOB + ./ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME -replace $TAG /packages.tar.gz + ./ghr -t $GITHUB_TOKEN -u $CIRCLE_PROJECT_USERNAME -r $CIRCLE_PROJECT_REPONAME -recreate -b "Latest unstable packages" $TAG /packages.tar.gz + fi + +jobs: + "mint18": + <<: *shared + docker: + - image: linuxmintd/mint18-amd64 + + "mint19": + <<: *shared + docker: + - image: linuxmintd/mint19-amd64 + + "lmde3": + <<: *shared + docker: + - image: linuxmintd/lmde3-amd64 + +workflows: + version: 2 + build: + jobs: + - "mint18" + - "mint19" + - "lmde3" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/configure.ac new/muffin-3.8.0/configure.ac --- old/muffin-3.6.0/configure.ac 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/configure.ac 2018-04-20 13:16:00.000000000 +0200 @@ -1,7 +1,7 @@ AC_PREREQ(2.50) m4_define([muffin_major_version], [3]) -m4_define([muffin_minor_version], [6]) +m4_define([muffin_minor_version], [8]) m4_define([muffin_micro_version], [0]) m4_define([muffin_version], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/debian/changelog new/muffin-3.8.0/debian/changelog --- old/muffin-3.6.0/debian/changelog 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/debian/changelog 2018-04-20 13:16:00.000000000 +0200 @@ -1,3 +1,37 @@ +muffin (3.8.0) tara; urgency=medium + + [ Michael Webster ] + * debian/control: remove libgconf2-dev from build deps (not used) + + [ Clement Lefebvre ] + * Add CI configuration + * Remove gsettings key org.cinnamon.muffin button-layout + + [ JosephMcc ] + * Fix an issue where window turns to a solid colored rectangle during the destroy animation + + [ Clement Lefebvre ] + * window: Stop updating layers on focus changes + * window: Do not unfocus on new window + + [ itzexor ] + * window.c: always notify when tile-type property changes + + [ Andrew Gunsch ] + * Fixes workspace animation direction for grid systems. (#303) + + [ Michael Webster ] + * window-props.c: Don't scale GTK_FRAME_EXTENTS, it comes already-scaled from Gtk (as of gtk 3.15.1) + * MetaWindow: Support gtk edge constraints (restores csd-window resizing while tiled or snapped.) + * atomnames.h: Move xapp atoms to non-EWMH list (they're actually named wrong but it's sort of late now.) + * window.c: catch X errors when setting gtk constraints. An error can occur when closing a tiled csd window. It's likely that because of how closing occurs on these type windows (we respond to it, we don't initiate it) that the XID may be invalid by the time we move to update its properties. + + [ itzexor ] + * meta-window-group: Report a paint volume + * meta-background: Report a paint volume + + -- Clement Lefebvre <root@linuxmint.com> Fri, 20 Apr 2018 12:15:33 +0100 + muffin (3.6.0) sylvia; urgency=medium [ Simon Brown ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/debian/control new/muffin-3.8.0/debian/control --- old/muffin-3.6.0/debian/control 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/debian/control 2018-04-20 13:16:00.000000000 +0200 @@ -12,7 +12,6 @@ libgirepository1.0-dev (>= 0.9.2), libclutter-1.0-dev (>= 1.10.0), libpango1.0-dev (>= 1.14.0), - libgconf2-dev (>= 2.6.1-2), libglib2.0-dev (>= 2.37.3), libstartup-notification0-dev (>= 0.7), libxcomposite-dev (>= 1:0.3), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/compositor/meta-background.c new/muffin-3.8.0/src/compositor/meta-background.c --- old/muffin-3.6.0/src/compositor/meta-background.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/compositor/meta-background.c 2018-04-20 13:16:00.000000000 +0200 @@ -146,6 +146,14 @@ } } +static gboolean +meta_background_get_paint_volume (ClutterActor *actor, + ClutterPaintVolume *volume) +{ + return clutter_paint_volume_set_from_allocation (volume, actor); +} + + static void meta_background_class_init (MetaBackgroundClass *klass) { @@ -158,6 +166,7 @@ actor_class->get_preferred_width = meta_background_get_preferred_width; actor_class->get_preferred_height = meta_background_get_preferred_height; + actor_class->get_paint_volume = meta_background_get_paint_volume; actor_class->paint = meta_background_paint; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/compositor/meta-window-group.c new/muffin-3.8.0/src/compositor/meta-window-group.c --- old/muffin-3.6.0/src/compositor/meta-window-group.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/compositor/meta-window-group.c 2018-04-20 13:16:00.000000000 +0200 @@ -220,12 +220,20 @@ g_list_free (children); } +static gboolean +meta_window_group_get_paint_volume (ClutterActor *actor, + ClutterPaintVolume *volume) +{ + return clutter_paint_volume_set_from_allocation (volume, actor); +} + static void meta_window_group_class_init (MetaWindowGroupClass *klass) { ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); actor_class->paint = meta_window_group_paint; + actor_class->get_paint_volume = meta_window_group_get_paint_volume; } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/frame.c new/muffin-3.8.0/src/core/frame.c --- old/muffin-3.6.0/src/core/frame.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/frame.c 2018-04-20 13:16:00.000000000 +0200 @@ -154,7 +154,6 @@ * style and background. */ meta_ui_update_frame_style (window->screen->ui, frame->xwindow); - meta_ui_reset_frame_bg (window->screen->ui, frame->xwindow); if (window->title) meta_ui_set_frame_title (window->screen->ui, @@ -377,15 +376,6 @@ frame->rect.x + frame->rect.width, frame->rect.y + frame->rect.height); - /* set bg to none to avoid flicker */ - if (need_resize) - { - meta_ui_unflicker_frame_bg (frame->window->screen->ui, - frame->xwindow, - frame->rect.width, - frame->rect.height); - } - meta_ui_move_resize_frame (frame->window->screen->ui, frame->xwindow, frame->rect.x, @@ -395,9 +385,6 @@ if (need_resize) { - meta_ui_reset_frame_bg (frame->window->screen->ui, - frame->xwindow); - /* If we're interactively resizing the frame, repaint * it immediately so we don't start to lag. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/prefs.c new/muffin-3.8.0/src/core/prefs.c --- old/muffin-3.6.0/src/core/prefs.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/prefs.c 2018-04-20 13:16:00.000000000 +0200 @@ -460,7 +460,7 @@ }, { { "button-layout", - SCHEMA_MUFFIN, + SCHEMA_GENERAL, META_PREF_BUTTON_LAYOUT, }, button_layout_handler, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/screen.c new/muffin-3.8.0/src/core/screen.c --- old/muffin-3.6.0/src/core/screen.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/screen.c 2018-04-20 13:16:00.000000000 +0200 @@ -416,6 +416,7 @@ screen->display->atom__GTK_FRAME_EXTENTS, screen->display->atom__GTK_SHOW_WINDOW_MENU, + screen->display->atom__GTK_EDGE_CONSTRAINTS, }; XChangeProperty (screen->display->xdisplay, screen->xroot, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/window-private.h new/muffin-3.8.0/src/core/window-private.h --- old/muffin-3.6.0/src/core/window-private.h 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/window-private.h 2018-04-20 13:16:00.000000000 +0200 @@ -101,6 +101,13 @@ _NET_WM_BYPASS_COMPOSITOR_HINT_OFF = 2, } MetaBypassCompositorHintValue; +typedef enum +{ + META_EDGE_CONSTRAINT_NONE = 0, + META_EDGE_CONSTRAINT_WINDOW = 1, + META_EDGE_CONSTRAINT_MONITOR = 2, +} MetaEdgeConstraint; + struct _MetaWindow { GObject parent_instance; @@ -202,6 +209,12 @@ guint saved_maximize : 1; int tile_monitor_number; + /* 0 - top + * 1 - right + * 2 - bottom + * 3 - left */ + MetaEdgeConstraint edge_constraints[4]; + /* Whether we're shaded */ guint shaded : 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/window-props.c new/muffin-3.8.0/src/core/window-props.c --- old/muffin-3.6.0/src/core/window-props.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/window-props.c 2018-04-20 13:16:00.000000000 +0200 @@ -377,13 +377,12 @@ else { GtkBorder *extents = &window->custom_frame_extents; - gint scale = meta_prefs_get_ui_scale (); window->has_custom_frame_extents = TRUE; - extents->left = (int)value->v.cardinal_list.cardinals[0] * scale; - extents->right = (int)value->v.cardinal_list.cardinals[1] * scale; - extents->top = (int)value->v.cardinal_list.cardinals[2] * scale; - extents->bottom = (int)value->v.cardinal_list.cardinals[3] * scale; + extents->left = (int)value->v.cardinal_list.cardinals[0]; + extents->right = (int)value->v.cardinal_list.cardinals[1]; + extents->top = (int)value->v.cardinal_list.cardinals[2]; + extents->bottom = (int)value->v.cardinal_list.cardinals[3]; } } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/window.c new/muffin-3.8.0/src/core/window.c --- old/muffin-3.6.0/src/core/window.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/window.c 2018-04-20 13:16:00.000000000 +0200 @@ -142,12 +142,13 @@ static void meta_window_update_monitor (MetaWindow *window); -static void notify_tile_type (MetaWindow *window); - static void normalize_tile_state (MetaWindow *window); static unsigned int get_mask_from_snap_keysym (MetaWindow *window); +static void update_edge_constraints (MetaWindow *window); +static void update_gtk_edge_constraints (MetaWindow *window); + /* Idle handlers for the three queues (run with meta_later_add()). The * "data" parameter in each case will be a GINT_TO_POINTER of the * index into the queue arrays to use. @@ -2246,6 +2247,10 @@ window->display->atom__NET_WM_WINDOW_TILE_INFO); meta_error_trap_pop (window->display); } + + meta_error_trap_push (window->display); + update_gtk_edge_constraints (window); + meta_error_trap_pop (window->display); } LOCAL_SYMBOL gboolean @@ -3040,27 +3045,7 @@ ( (!place_on_top_on_map && !takes_focus_on_map) || window_would_be_covered (window) ) ) { - if (meta_window_is_ancestor_of_transient (focus_window, window)) - { - guint32 timestamp; - - timestamp = meta_display_get_current_time_roundtrip (window->display); - - /* This happens for error dialogs or alerts; these need to remain on - * top, but it would be confusing to have its ancestor remain - * focused. - */ - meta_topic (META_DEBUG_STARTUP, - "The focus window %s is an ancestor of the newly mapped " - "window %s which isn't being focused. Unfocusing the " - "ancestor.\n", - focus_window->desc, window->desc); - - meta_display_focus_the_no_focus_window (window->display, - window->screen, - timestamp); - } - else + if (!meta_window_is_ancestor_of_transient (focus_window, window)) { needs_stacking_adjustment = TRUE; if (!window->placed) @@ -3504,7 +3489,6 @@ meta_window_set_tile_type (window, META_WINDOW_TILE_TYPE_NONE); window->tile_mode = META_TILE_NONE; - notify_tile_type (window); normalize_tile_state (window); if (maximize_horizontally && maximize_vertically) @@ -3517,6 +3501,9 @@ if (maximize_horizontally || maximize_vertically) window->force_save_user_rect = FALSE; + /* Update the edge constraints */ + update_edge_constraints (window);; + recalc_window_features (window); set_net_wm_state (window); @@ -3732,14 +3719,6 @@ } static void -notify_tile_type (MetaWindow *window) -{ - g_object_freeze_notify (G_OBJECT (window)); - g_object_notify (G_OBJECT (window), "tile-type"); - g_object_thaw_notify (G_OBJECT (window)); -} - -static void normalize_tile_state (MetaWindow *window) { window->snap_queued = FALSE; @@ -3810,8 +3789,6 @@ meta_screen_tile_preview_hide (window->screen); meta_window_get_outer_rect (window, &window->snapped_rect); - - notify_tile_type (window); } static gboolean @@ -3900,7 +3877,6 @@ if (window->tile_type != META_WINDOW_TILE_TYPE_NONE) { meta_window_set_tile_type (window, META_WINDOW_TILE_TYPE_NONE); meta_screen_update_snapped_windows (window->screen); - notify_tile_type (window); } if (window->withdrawn) /* See bug #137185 */ @@ -3955,7 +3931,7 @@ window->last_tile_mode = META_TILE_NONE; window->tile_mode = META_TILE_NONE; window->resizing_tile_type = META_WINDOW_TILE_TYPE_NONE; - window->tile_type = META_WINDOW_TILE_TYPE_NONE; + meta_window_set_tile_type (window, META_WINDOW_TILE_TYPE_NONE); meta_window_get_work_area_for_monitor (window, window->monitor->number, &work_area); @@ -4040,15 +4016,13 @@ window->display->grab_anchor_window_pos = window->user_rect; } - if (window->tile_type != META_WINDOW_TILE_TYPE_NONE) { - meta_window_set_tile_type (window, META_WINDOW_TILE_TYPE_NONE); - notify_tile_type (window); - } if (window->resizing_tile_type == META_WINDOW_TILE_TYPE_NONE) window->custom_snap_size = FALSE; meta_screen_update_snapped_windows (window->screen); + update_edge_constraints (window); + recalc_window_features (window); set_net_wm_state (window); if (!window->monitor->in_fullscreen) @@ -6300,6 +6274,31 @@ meta_error_trap_pop (window->display); } +static void +update_gtk_edge_constraints (MetaWindow *window) +{ + MetaEdgeConstraint *constraints = window->edge_constraints; + unsigned long data[1]; + + /* Edge constraints */ + data[0] = (constraints[0] != META_EDGE_CONSTRAINT_NONE ? 1 : 0) << 0 | + (constraints[0] != META_EDGE_CONSTRAINT_MONITOR ? 1 : 0) << 1 | + (constraints[1] != META_EDGE_CONSTRAINT_NONE ? 1 : 0) << 2 | + (constraints[1] != META_EDGE_CONSTRAINT_MONITOR ? 1 : 0) << 3 | + (constraints[2] != META_EDGE_CONSTRAINT_NONE ? 1 : 0) << 4 | + (constraints[2] != META_EDGE_CONSTRAINT_MONITOR ? 1 : 0) << 5 | + (constraints[3] != META_EDGE_CONSTRAINT_NONE ? 1 : 0) << 6 | + (constraints[3] != META_EDGE_CONSTRAINT_MONITOR ? 1 : 0) << 7; + + meta_verbose ("Setting _GTK_EDGE_CONSTRAINTS to %lu\n", data[0]); + + XChangeProperty (window->display->xdisplay, + window->xwindow, + window->display->atom__GTK_EDGE_CONSTRAINTS, + XA_CARDINAL, 32, PropModeReplace, + (guchar*) data, 1); +} + LOCAL_SYMBOL void meta_window_set_current_workspace_hint (MetaWindow *window) { @@ -7447,8 +7446,6 @@ window->colormap); meta_error_trap_pop (window->display); - /* move into FOCUSED_WINDOW layer */ - meta_window_update_layer (window); /* Ungrab click to focus button since the sync grab can interfere * with some things you might do inside the focused window, by @@ -7512,9 +7509,6 @@ window->colormap); meta_error_trap_pop (window->display); - /* move out of FOCUSED_WINDOW layer */ - meta_window_update_layer (window); - /* Re-grab for click to focus and raise-on-click, if necessary */ if (meta_prefs_get_focus_mode () == C_DESKTOP_FOCUS_MODE_CLICK || !meta_prefs_get_raise_on_click ()) @@ -11906,6 +11900,9 @@ if (window->tile_type != type) { window->tile_type = type; + g_object_freeze_notify (G_OBJECT (window)); + g_object_notify (G_OBJECT (window), "tile-type"); + g_object_thaw_notify (G_OBJECT (window)); } } @@ -12027,6 +12024,92 @@ } } +static void +update_edge_constraints (MetaWindow *window) +{ + switch (window->tile_mode) + { + case META_TILE_NONE: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_NONE; + break; + + case META_TILE_MAXIMIZE: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_MONITOR; + break; + + case META_TILE_LEFT: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_MONITOR; + break; + + case META_TILE_RIGHT: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_NONE; + break; + + case META_TILE_TOP: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_NONE; + break; + + case META_TILE_BOTTOM: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_MONITOR; + break; + case META_TILE_ULC: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_MONITOR; + break; + case META_TILE_URC: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_NONE; + break; + case META_TILE_LLC: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_MONITOR; + break; + case META_TILE_LRC: + window->edge_constraints[0] = META_EDGE_CONSTRAINT_NONE; + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_NONE; + break; + } + + /* h/vmaximize also modify the edge constraints */ + if (window->maximized_vertically) + { + window->edge_constraints[0] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[2] = META_EDGE_CONSTRAINT_MONITOR; + } + + if (window->maximized_horizontally) + { + window->edge_constraints[1] = META_EDGE_CONSTRAINT_MONITOR; + window->edge_constraints[3] = META_EDGE_CONSTRAINT_MONITOR; + } +} + /** * meta_window_tile: * @window: a #MetaWindow diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/core/workspace.c new/muffin-3.8.0/src/core/workspace.c --- old/muffin-3.6.0/src/core/workspace.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/core/workspace.c 2018-04-20 13:16:00.000000000 +0200 @@ -547,7 +547,7 @@ ret = (to - from) <= ((num_workspaces - to) + from) ? META_MOTION_LEFT : META_MOTION_RIGHT; else ret = META_MOTION_LEFT; - else + else if (from > to) if (wrap) ret = (from - to) <= ((num_workspaces - from) + to) ? META_MOTION_RIGHT : META_MOTION_LEFT; else @@ -560,7 +560,7 @@ ret = (to - from) <= ((num_workspaces - to) + from) ? META_MOTION_RIGHT : META_MOTION_LEFT; else ret = META_MOTION_RIGHT; - else + else if (from > to) if (wrap) ret = (from - to) <= ((num_workspaces - from) + to) ? META_MOTION_LEFT : META_MOTION_RIGHT; else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/meta/atomnames.h new/muffin-3.8.0/src/meta/atomnames.h --- old/muffin-3.6.0/src/meta/atomnames.h 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/meta/atomnames.h 2018-04-20 13:16:00.000000000 +0200 @@ -66,12 +66,17 @@ item(_GTK_APP_MENU_OBJECT_PATH) item(_GTK_MENUBAR_OBJECT_PATH) item(_GTK_FRAME_EXTENTS) +item(_GTK_SHOW_WINDOW_MENU) +item(_GTK_EDGE_CONSTRAINTS) item(_GNOME_WM_KEYBINDINGS) item(_GNOME_PANEL_ACTION) item(_GNOME_PANEL_ACTION_RUN_DIALOG) item(_MUFFIN_SENTINEL) item(_MUFFIN_VERSION) item(WM_CLIENT_MACHINE) +item(_NET_WM_XAPP_ICON_NAME) +item(_NET_WM_XAPP_PROGRESS) +item(_NET_WM_XAPP_PROGRESS_PULSE) item(MANAGER) item(TARGETS) item(MULTIPLE) @@ -161,7 +166,6 @@ item(_NET_WM_ACTION_FULLSCREEN) item(_NET_WM_ACTION_MINIMIZE) item(_NET_FRAME_EXTENTS) -item(_GTK_SHOW_WINDOW_MENU) item(_NET_REQUEST_FRAME_EXTENTS) item(_NET_WM_USER_TIME) item(_NET_WM_STATE_DEMANDS_ATTENTION) @@ -177,9 +181,6 @@ item(_NET_WM_BYPASS_COMPOSITOR) item(_NET_WM_FRAME_DRAWN) item(_NET_WM_FRAME_TIMINGS) -item(_NET_WM_XAPP_ICON_NAME) -item(_NET_WM_XAPP_PROGRESS) -item(_NET_WM_XAPP_PROGRESS_PULSE) #if 0 /* We apparently never use: */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/org.cinnamon.muffin.gschema.xml.in new/muffin-3.8.0/src/org.cinnamon.muffin.gschema.xml.in --- old/muffin-3.6.0/src/org.cinnamon.muffin.gschema.xml.in 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/org.cinnamon.muffin.gschema.xml.in 2018-04-20 13:16:00.000000000 +0200 @@ -123,15 +123,6 @@ </_description> </key> - <key name="button-layout" type="s"> - <default>":minimize,maximize,close"</default> - <summary>Arrangement of buttons on the titlebar</summary> - <description> - This key overrides the key in org.cinnamon.desktop.wm.preferences when - running Cinnamon. - </description> - </key> - <key name="invert-workspace-flip-direction" type="b"> <default>false</default> <_summary>Inverts the direction the left and right arrows take you when diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/ui/frames.c new/muffin-3.8.0/src/ui/frames.c --- old/muffin-3.6.0/src/ui/frames.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/ui/frames.c 2018-04-20 13:16:00.000000000 +0200 @@ -73,9 +73,6 @@ MetaUIFrame *frame, cairo_t *cr); -static void meta_frames_set_window_background (MetaFrames *frames, - MetaUIFrame *frame); - static void meta_frames_calc_geometry (MetaFrames *frames, MetaUIFrame *frame, MetaFrameGeometry *fgeom); @@ -423,12 +420,6 @@ frames = META_FRAMES (data); frame = value; - /* If a resize occurs it will cause a redraw, but the - * resize may not actually be needed so we always redraw - * in case of color change. - */ - meta_frames_set_window_background (frames, frame); - invalidate_whole_window (frames, frame); meta_core_queue_frame_resize (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow); @@ -468,12 +459,6 @@ frames = META_FRAMES (data); frame = value; - /* If a resize occurs it will cause a redraw, but the - * resize may not actually be needed so we always redraw - * in case of color change. - */ - meta_frames_set_window_background (frames, frame); - invalidate_whole_window (frames, frame); } @@ -711,11 +696,6 @@ frame->shape_applied = FALSE; frame->prelit_control = META_FRAME_CONTROL_NONE; - /* Don't set the window background yet; we need frame->xwindow to be - * registered with its MetaWindow, which happens after this function - * and meta_ui_create_frame_window() return to meta_window_ensure_frame(). - */ - meta_core_grab_buttons (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow); g_hash_table_replace (frames->frames, &frame->xwindow, frame); @@ -844,42 +824,6 @@ *bottom_right = fgeom.bottom_right_corner_rounded_radius + sqrt(fgeom.bottom_right_corner_rounded_radius); } -LOCAL_SYMBOL void -meta_frames_reset_bg (MetaFrames *frames, - Window xwindow) -{ - MetaUIFrame *frame; - - frame = meta_frames_lookup_window (frames, xwindow); - - meta_frames_set_window_background (frames, frame); -} - -static void -set_background_none (Display *xdisplay, - Window xwindow) -{ - XSetWindowAttributes attrs; - - attrs.background_pixmap = None; - XChangeWindowAttributes (xdisplay, xwindow, - CWBackPixmap, &attrs); -} - -LOCAL_SYMBOL void -meta_frames_unflicker_bg (MetaFrames *frames, - Window xwindow, - int target_width, - int target_height) -{ - MetaUIFrame *frame; - - frame = meta_frames_lookup_window (frames, xwindow); - g_return_if_fail (frame != NULL); - - set_background_none (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow); -} - /* The client rectangle surrounds client window; it subtracts both * the visible and invisible borders from the frame window's size. */ @@ -2429,52 +2373,6 @@ mini_icon, icon); } -static void -meta_frames_set_window_background (MetaFrames *frames, - MetaUIFrame *frame) -{ - MetaFrameFlags flags; - MetaFrameType type; - MetaFrameStyle *style = NULL; - gboolean frame_exists; - - meta_core_get (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), frame->xwindow, - META_CORE_WINDOW_HAS_FRAME, &frame_exists, - META_CORE_GET_FRAME_FLAGS, &flags, - META_CORE_GET_FRAME_TYPE, &type, - META_CORE_GET_END); - - if (frame_exists) - { - style = meta_theme_get_frame_style (meta_theme_get_current (), - type, flags); - } - - if (frame_exists && style->window_background_color != NULL) - { - GdkRGBA color; - GdkVisual *visual; - - meta_color_spec_render (style->window_background_color, - frame->style, - &color); - - /* Set A in ARGB to window_background_alpha, if we have ARGB */ - - visual = gtk_widget_get_visual (GTK_WIDGET (frames)); - if (gdk_visual_get_depth (visual) == 32) /* we have ARGB */ - { - color.alpha = style->window_background_alpha / 255.0; - } - - gdk_window_set_background_rgba (frame->window, &color); - } - else - { - gtk_style_context_set_background (frame->style, frame->window); - } - } - static gboolean meta_frames_enter_notify_event (GtkWidget *widget, GdkEventCrossing *event) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/ui/frames.h new/muffin-3.8.0/src/ui/frames.h --- old/muffin-3.6.0/src/ui/frames.h 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/ui/frames.h 2018-04-20 13:16:00.000000000 +0200 @@ -133,13 +133,6 @@ Window xwindow, MetaFrameBorders *borders); -void meta_frames_reset_bg (MetaFrames *frames, - Window xwindow); -void meta_frames_unflicker_bg (MetaFrames *frames, - Window xwindow, - int target_width, - int target_height); - cairo_region_t *meta_frames_get_frame_bounds (MetaFrames *frames, Window xwindow, int window_width, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/ui/ui.c new/muffin-3.8.0/src/ui/ui.c --- old/muffin-3.6.0/src/ui/ui.c 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/ui/ui.c 2018-04-20 13:16:00.000000000 +0200 @@ -336,6 +336,17 @@ bottom_left, bottom_right); } +LOCAL_SYMBOL void +set_background_none (Display *xdisplay, + Window xwindow) +{ + XSetWindowAttributes attrs; + + attrs.background_pixmap = None; + XChangeWindowAttributes (xdisplay, xwindow, + CWBackPixmap, &attrs); +} + LOCAL_SYMBOL Window meta_ui_create_frame_window (MetaUI *ui, Display *xdisplay, @@ -402,6 +413,7 @@ &attrs, attributes_mask); gdk_window_resize (window, width, height); + set_background_none (xdisplay, GDK_WINDOW_XID (window)); meta_frames_manage_window (ui->frames, GDK_WINDOW_XID (window), window); @@ -455,16 +467,6 @@ } LOCAL_SYMBOL void -meta_ui_unflicker_frame_bg (MetaUI *ui, - Window xwindow, - int target_width, - int target_height) -{ - meta_frames_unflicker_bg (ui->frames, xwindow, - target_width, target_height); -} - -LOCAL_SYMBOL void meta_ui_update_frame_style (MetaUI *ui, Window xwindow) { @@ -478,13 +480,6 @@ meta_frames_repaint_frame (ui->frames, xwindow); } -LOCAL_SYMBOL void -meta_ui_reset_frame_bg (MetaUI *ui, - Window xwindow) -{ - meta_frames_reset_bg (ui->frames, xwindow); -} - LOCAL_SYMBOL cairo_region_t * meta_ui_get_frame_bounds (MetaUI *ui, Window xwindow, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/muffin-3.6.0/src/ui/ui.h new/muffin-3.8.0/src/ui/ui.h --- old/muffin-3.6.0/src/ui/ui.h 2017-10-24 11:21:07.000000000 +0200 +++ new/muffin-3.8.0/src/ui/ui.h 2018-04-20 13:16:00.000000000 +0200 @@ -88,13 +88,6 @@ void meta_ui_unmap_frame (MetaUI *ui, Window xwindow); -void meta_ui_unflicker_frame_bg (MetaUI *ui, - Window xwindow, - int target_width, - int target_height); -void meta_ui_reset_frame_bg (MetaUI *ui, - Window xwindow); - cairo_region_t *meta_ui_get_frame_bounds (MetaUI *ui, Window xwindow, int window_width,
participants (1)
-
root@hilbert.suse.de