Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 93496 Details for
Bug 142876
x11-wm/metacity xinerama placement patch
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
patch for metacity to let the user switch the new window placement behaviour
metacity-2-xinerama-place.patch (text/plain), 9.86 KB, created by
Matthias Jansen
on 2006-08-05 05:26:21 UTC
(
hide
)
Description:
patch for metacity to let the user switch the new window placement behaviour
Filename:
MIME Type:
Creator:
Matthias Jansen
Created:
2006-08-05 05:26:21 UTC
Size:
9.86 KB
patch
obsolete
>diff -ur metacity-2.14.5_orig/po/de.po metacity-2.14.5/po/de.po >--- metacity-2.14.5_orig/po/de.po 2006-04-27 21:23:03.000000000 +0200 >+++ metacity-2.14.5/po/de.po 2006-08-05 13:58:29.000000000 +0200 >@@ -2077,6 +2077,23 @@ > msgid "Visual Bell Type" > msgstr "Typ der Visuellen Glocke" > >+# xinerama text >+msgid "Whether in Xinerama mode new windows should open on the currently focused screen or should open on the most free screen" >+msgstr "" >+"Legt fest ob im Xinerama-Modus neue Fenster auf dem aktivem Screen angezeigt werden sollen oder auf " >+"dem leereren" >+ >+msgid "" >+"Normaly in Xinerama mode a new window shows up on the screen which" >+"is most free. So it could be possible the a window doesn't open on " >+"the screen you are currently working on." >+"Set this option to true to avoid this behavior. Then all windows will " >+"be opened on the screen the mousecursor is currently on." >+msgstr "" >+"Normalerweise werden im Xinerama-Modus neue Fenster auf dem leereren Screen angezeigt. " >+"Dadurch ist es möglich, dass nicht alle neuen Fenster auf dem Screen gestartet werden auf dem sie sollten. " >+"Wenn dieser Schlüssel gesetzt ist wird jedes Fenster auf dem Screen gestartet auf dem sich gerade der Mauszeiger befindet." >+ > #: ../src/metacity.schemas.in.h:170 > msgid "Whether raising should be a side-effect of other user interactions" > msgstr "" >diff -ur metacity-2.14.5_orig/src/metacity.schemas metacity-2.14.5/src/metacity.schemas >--- metacity-2.14.5_orig/src/metacity.schemas 2006-05-30 08:06:02.000000000 +0200 >+++ metacity-2.14.5/src/metacity.schemas 2006-08-05 13:45:19.000000000 +0200 >@@ -1212,6 +1212,33 @@ > </schema> > > <schema> >+ <key>/schemas/apps/metacity/general/xinerama_launch_window_on_focus_screen</key> >+ <applyto>/apps/metacity/general/xinerama_launch_window_on_focus_screen</applyto> >+ <owner>metacity</owner> >+ <type>bool</type> >+ <default>false</default> >+ <locale name="C"> >+ <short>Whether in Xinerama mode new windows should open on the currently focused screen or should open on the most free screen</short> >+ <long> >+ Normaly in Xinerama mode a new window shows up on the screen which >+ is most free. So it could be possible the a window doesn't open on >+ the screen you are currently working on. >+ Set this option to true to avoid this behavior. Then all windows will >+ be opened on the screen the mousecursor is currently on. >+ </long> >+ </locale> >+ >+ <locale name="de"> >+ <short>Legt fest ob im Xinerama-Modus neue Fenster auf dem aktivem Screen angezeigt werden sollen oder auf dem leereren</short> >+ <long>Normalerweise werden im Xinerama-Modus neue Fenster auf dem leereren Screen angezeigt. >+ Dadurch ist es möglich, dass nicht alle neuen Fenster auf dem Screen gestartet werden auf dem sie sollten. >+ Wenn dieser Schlüssel gesetzt ist wird jedes Fenster auf dem Screen gestartet auf dem sich gerade der Mauszeiger befindet. >+ </long> >+ </locale> >+ >+ </schema> >+ >+ <schema> > <key>/schemas/apps/metacity/general/raise_on_click</key> > <applyto>/apps/metacity/general/raise_on_click</applyto> > <owner>metacity</owner> >diff -ur metacity-2.14.5_orig/src/metacity.schemas.in metacity-2.14.5/src/metacity.schemas.in >--- metacity-2.14.5_orig/src/metacity.schemas.in 2006-04-27 21:23:05.000000000 +0200 >+++ metacity-2.14.5/src/metacity.schemas.in 2006-08-05 12:20:49.000000000 +0200 >@@ -82,6 +82,24 @@ > </long> > </locale> > </schema> >+ >+ <schema> >+ <key>/schemas/apps/metacity/general/xinerama_launch_window_on_focus_screen</key> >+ <applyto>/apps/metacity/general/xinerama_launch_window_on_focus_screen</applyto> >+ <owner>metacity</owner> >+ <type>bool</type> >+ <default>false</default> >+ <locale name="C"> >+ <short>Whether in Xinerama mode new windows should open on the currently focused screen or should open on the most free screen</short> >+ <long> >+ Normaly in Xinerama mode a new window shows up on the screen which >+ is most free. So it could be possible the a window doesn't open on >+ the screen you are currently working on. >+ Set this option to true to avoid this behavior. Then all windows will >+ be opened on the screen the mousecursor is currently on. >+ </long> >+ </locale> >+ </schema> > > <schema> > <key>/schemas/apps/metacity/general/raise_on_click</key> >diff -ur metacity-2.14.5_orig/src/place.c metacity-2.14.5/src/place.c >--- metacity-2.14.5_orig/src/place.c 2006-04-24 23:58:33.000000000 +0200 >+++ metacity-2.14.5/src/place.c 2006-08-05 13:30:11.000000000 +0200 >@@ -923,6 +923,13 @@ > x = xi->rect.x; > y = xi->rect.y; > >+#ifdef HAVE_GCONF >+#ifdef HAVE_XINERAMA >+ if (meta_prefs_get_xinerama_launch_window_on_focus_screen()) >+ n_xineramas = 1; >+#endif >+#endif >+ > if (find_first_fit (window, fgeom, windows, > xineramas_list, n_xineramas, > x, y, &x, &y)) >diff -ur metacity-2.14.5_orig/src/prefs.c metacity-2.14.5/src/prefs.c >--- metacity-2.14.5_orig/src/prefs.c 2006-05-15 20:33:36.000000000 +0200 >+++ metacity-2.14.5/src/prefs.c 2006-08-05 13:26:51.000000000 +0200 >@@ -44,6 +44,7 @@ > #define KEY_FOCUS_MODE "/apps/metacity/general/focus_mode" > #define KEY_FOCUS_NEW_WINDOWS "/apps/metacity/general/focus_new_windows" > #define KEY_RAISE_ON_CLICK "/apps/metacity/general/raise_on_click" >+#define KEY_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN "/apps/metacity/general/xinerama_launch_window_on_focus_screen" > #define KEY_ACTION_DOUBLE_CLICK_TITLEBAR "/apps/metacity/general/action_double_click_titlebar" > #define KEY_AUTO_RAISE "/apps/metacity/general/auto_raise" > #define KEY_AUTO_RAISE_DELAY "/apps/metacity/general/auto_raise_delay" >@@ -84,6 +85,7 @@ > static MetaVirtualModifier mouse_button_mods = Mod1Mask; > static MetaFocusMode focus_mode = META_FOCUS_MODE_CLICK; > static MetaFocusNewWindows focus_new_windows = META_FOCUS_NEW_WINDOWS_SMART; >+static gboolean xinerama_launch_window_on_focus_screen = FALSE; > static gboolean raise_on_click = TRUE; > static char* current_theme = NULL; > static int num_workspaces = 4; >@@ -130,6 +132,9 @@ > static gboolean update_focus_mode (const char *value); > static gboolean update_focus_new_windows (const char *value); > static gboolean update_raise_on_click (gboolean value); >+#ifdef HAVE_XINERAMA >+static gboolean update_xinerama_launch_window_on_focus_screen (gboolean value); >+#endif > static gboolean update_theme (const char *value); > static gboolean update_visual_bell (gboolean v1, gboolean v2); > static gboolean update_visual_bell_type (const char *value); >@@ -384,9 +389,11 @@ > update_focus_new_windows (str_val); > g_free (str_val); > >+ if (get_bool (KEY_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN, &bool_val)) >+ update_xinerama_launch_window_on_focus_screen (bool_val); >+ > if (get_bool (KEY_RAISE_ON_CLICK, &bool_val)) > update_raise_on_click (bool_val); >- > str_val = gconf_client_get_string (default_client, > KEY_ACTION_DOUBLE_CLICK_TITLEBAR, > &err); >@@ -588,6 +595,22 @@ > if (update_focus_new_windows (str)) > queue_changed (META_PREF_FOCUS_NEW_WINDOWS); > } >+ else if (strcmp (key, KEY_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN) == 0) >+ { >+ gboolean b; >+ >+ if (value && value->type != GCONF_VALUE_BOOL) >+ { >+ meta_warning (_("GConf key \"%s\" is set to an invalid type\n"), >+ KEY_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN); >+ goto out; >+ } >+ >+ b = value ? gconf_value_get_bool (value) : TRUE; >+ >+ if (update_xinerama_launch_window_on_focus_screen (b)) >+ queue_changed (META_PREF_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN); >+ } > else if (strcmp (key, KEY_RAISE_ON_CLICK) == 0) > { > gboolean b; >@@ -1059,6 +1082,20 @@ > #endif /* HAVE_GCONF */ > > #ifdef HAVE_GCONF >+#ifdef HAVE_XINERAMA >+static gboolean >+update_xinerama_launch_window_on_focus_screen (gboolean value) >+{ >+ gboolean old = xinerama_launch_window_on_focus_screen; >+ >+ xinerama_launch_window_on_focus_screen = value; >+ >+ return old != value; >+} >+#endif /* HAVE_XINERAMA */ >+#endif /* HAVE_GCONF */ >+ >+#ifdef HAVE_GCONF > static gboolean > update_theme (const char *value) > { >@@ -1119,6 +1156,18 @@ > return raise_on_click || focus_mode == META_FOCUS_MODE_CLICK; > } > >+#ifdef HAVE_GCONF >+#ifdef HAVE_XINERAMA >+gboolean >+meta_prefs_get_xinerama_launch_window_on_focus_screen (void) >+{ >+ /* Force new windows come up on the currently active screen >+ */ >+ return xinerama_launch_window_on_focus_screen; >+} >+#endif /* HAVE_XINERAMA */ >+#endif /* HAVE_GCONF */ >+ > const char* > meta_prefs_get_theme (void) > { >@@ -1608,6 +1657,9 @@ > case META_PREF_FOCUS_NEW_WINDOWS: > return "FOCUS_NEW_WINDOWS"; > >+ case META_PREF_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN: >+ return "XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN"; >+ > case META_PREF_RAISE_ON_CLICK: > return "RAISE_ON_CLICK"; > >diff -ur metacity-2.14.5_orig/src/prefs.h metacity-2.14.5/src/prefs.h >--- metacity-2.14.5_orig/src/prefs.h 2006-04-27 21:23:05.000000000 +0200 >+++ metacity-2.14.5/src/prefs.h 2006-08-05 12:08:44.000000000 +0200 >@@ -53,7 +53,8 @@ > META_PREF_REDUCED_RESOURCES, > META_PREF_GNOME_ACCESSIBILITY, > META_PREF_CURSOR_THEME, >- META_PREF_CURSOR_SIZE >+ META_PREF_CURSOR_SIZE, >+ META_PREF_XINERAMA_LAUNCH_WINDOW_ON_FOCUS_SCREEN > } MetaPreference; > > typedef void (* MetaPrefsChangedFunc) (MetaPreference pref, >@@ -71,6 +72,7 @@ > MetaFocusMode meta_prefs_get_focus_mode (void); > MetaFocusNewWindows meta_prefs_get_focus_new_windows (void); > gboolean meta_prefs_get_raise_on_click (void); >+gboolean meta_prefs_get_xinerama_launch_window_on_focus_screen (void); > const char* meta_prefs_get_theme (void); > /* returns NULL if GTK default should be used */ > const PangoFontDescription* meta_prefs_get_titlebar_font (void);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 142876
: 93496 |
93497