summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--defaults/defaults1
-rw-r--r--po/xfwm4.pot133
-rw-r--r--settings-dialogs/tweaks-settings.c6
-rw-r--r--settings-dialogs/xfwm4-tweaks-dialog.glade17
-rw-r--r--src/client.c24
-rw-r--r--src/settings.c8
-rw-r--r--src/settings.h1
7 files changed, 131 insertions, 59 deletions
diff --git a/defaults/defaults b/defaults/defaults
index 586813fec..caa6ab031 100644
--- a/defaults/defaults
+++ b/defaults/defaults
@@ -30,6 +30,7 @@ raise_delay=250
raise_on_click=true
raise_on_focus=false
raise_with_any_button=true
+repeat_urgent_blink=true
resize_opacity=100
restore_on_move=true
scroll_workspaces=true
diff --git a/po/xfwm4.pot b/po/xfwm4.pot
index 46eff11e1..7f7726102 100644
--- a/po/xfwm4.pot
+++ b/po/xfwm4.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-09-29 23:05+0100\n"
+"POT-Creation-Date: 2008-10-07 20:36+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,12 +16,16 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../helper-dialog/helper-dialog.c:79
+#: ../helper-dialog/helper-dialog.c:84
msgid ""
"This window might be busy and is not responding.\n"
"Do you want to terminate the application?"
msgstr ""
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr ""
+
#. TRANSLATORS: "(on %s)" is like "running on" the name of the other host
#: ../src/client.c:182
#, c-format
@@ -180,7 +184,7 @@ msgid "Advanced window manager settings"
msgstr ""
#: ../settings-dialogs/xfce-wmtweaks-settings.desktop.in.h:2
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:30
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:31
msgid "Window Manager Tweaks"
msgstr ""
@@ -189,12 +193,12 @@ msgid "Xfce 4 Window Manager Tweaks"
msgstr ""
#: ../settings-dialogs/xfce-workspaces-settings.desktop.in.h:1
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:2
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:5
msgid "Set number and names of workspaces"
msgstr ""
#: ../settings-dialogs/xfce-workspaces-settings.desktop.in.h:2
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:3
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:6
msgid "Workspaces"
msgstr ""
@@ -487,31 +491,31 @@ msgid "Shortcut"
msgstr ""
#: ../settings-dialogs/xfwm4-settings.c:577
-#: ../settings-dialogs/workspace-settings.c:326
+#: ../settings-dialogs/workspace-settings.c:369
msgid "Settings manager socket"
msgstr ""
#: ../settings-dialogs/xfwm4-settings.c:577
-#: ../settings-dialogs/tweaks-settings.c:388
-#: ../settings-dialogs/workspace-settings.c:326
+#: ../settings-dialogs/tweaks-settings.c:396
+#: ../settings-dialogs/workspace-settings.c:369
msgid "SOCKET ID"
msgstr ""
#: ../settings-dialogs/xfwm4-settings.c:578
-#: ../settings-dialogs/tweaks-settings.c:389
-#: ../settings-dialogs/workspace-settings.c:327
+#: ../settings-dialogs/tweaks-settings.c:397
+#: ../settings-dialogs/workspace-settings.c:370
msgid "Version information"
msgstr ""
#: ../settings-dialogs/xfwm4-settings.c:596
-#: ../settings-dialogs/tweaks-settings.c:406
-#: ../settings-dialogs/workspace-settings.c:344
+#: ../settings-dialogs/tweaks-settings.c:414
+#: ../settings-dialogs/workspace-settings.c:387
msgid "."
msgstr ""
#: ../settings-dialogs/xfwm4-settings.c:600
-#: ../settings-dialogs/tweaks-settings.c:410
-#: ../settings-dialogs/workspace-settings.c:348
+#: ../settings-dialogs/tweaks-settings.c:418
+#: ../settings-dialogs/workspace-settings.c:391
#, c-format
msgid ""
"%s: %s\n"
@@ -576,151 +580,172 @@ msgid "Honor _standard ICCCM focus hint"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:16
-msgid "Key used to _grab and move windows:"
+msgid "Keep urgent windows blinking"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:17
-msgid "Opaci_ty of window decorations:"
+msgid "Key used to _grab and move windows:"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:18
-msgid "Opacity of _inactive windows:"
+msgid "Opaci_ty of window decorations:"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:19
-msgid "Opacity of popup window_s:"
+msgid "Opacity of _inactive windows:"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:20
-msgid "Opacity of windows during _move:"
+msgid "Opacity of popup window_s:"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:21
-msgid "Opacity of windows during resi_ze:"
+msgid "Opacity of windows during _move:"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:22
-msgid "Restore original _size of maximized windows when moving"
+msgid "Opacity of windows during resi_ze:"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:23
-msgid "Show shadows under _dock windows"
+msgid "Restore original _size of maximized windows when moving"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:24
-msgid "Show shadows under _regular windows"
+msgid "Show shadows under _dock windows"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:25
-msgid "Show shadows under pop_up windows"
+msgid "Show shadows under _regular windows"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:26
-msgid "Switch to win_dow's workspace"
+msgid "Show shadows under pop_up windows"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:27
-msgid "Under the mouse _pointer"
+msgid "Switch to win_dow's workspace"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:28
-msgid "Use _edge resistance instead of window snapping"
+msgid "Under the mouse _pointer"
msgstr ""
#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:29
+msgid "Use _edge resistance instead of window snapping"
+msgstr ""
+
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:30
msgid "When a window raises itself:"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:31
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:32
msgid "Wrap workspaces depending on the actual desktop _layout"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:32
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:33
msgid "Wrap workspaces when the _first or the last workspace is reached"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:33
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:34
msgid "_Accessibility"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:34
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:35
msgid "_Bring window on current workspace"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:35
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:36
+msgid "_Draw frame around selected windows while cycling"
+msgstr ""
+
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:37
msgid "_Enable display compositing"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:36
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:38
#: ../settings-dialogs/xfwm4-dialog.glade.h:49
msgid "_Focus"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:37
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:39
msgid "_Include hidden (i.e. iconified) windows"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:38
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:40
msgid "_Minimum size of windows to trigger smart placement:"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:39
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:41
msgid "_Mouse wheel over desktop switches workspaces"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:40
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:42
msgid "_Placement"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:41
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:43
msgid "_Raise windows when any mouse button is pressed"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:42
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:44
msgid ""
"_Remember and recall previous workspace\n"
"when switching via keyboard shortcuts"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:44
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:46
msgid ""
"_Skip windows that have \"skip pager\"\n"
"or \"skip taskbar\" properties set"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:46
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:48
msgid "_Workspaces"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:47
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:7
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:49
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:10
#: ../settings-dialogs/xfwm4-dialog.glade.h:52
msgid "gtk-close"
msgstr ""
-#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:48
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:8
+#: ../settings-dialogs/xfwm4-tweaks-dialog.glade.h:50
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:11
#: ../settings-dialogs/xfwm4-dialog.glade.h:53
msgid "gtk-help"
msgstr ""
#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:1
+msgid "<b>Margins</b>"
+msgstr ""
+
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:2
+msgid "<b>Workspaces</b>"
+msgstr ""
+
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:3
msgid "Change Workspace Name"
msgstr ""
#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:4
+msgid ""
+"Margins are areas on the edges of the screen where no window will be placed"
+msgstr ""
+
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:7
msgid "_Name:"
msgstr ""
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:5
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:8
msgid "_Number of workspaces:"
msgstr ""
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:6
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:9
msgid "gtk-cancel"
msgstr ""
-#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:9
+#: ../settings-dialogs/xfwm4-workspace-dialog.glade.h:12
msgid "gtk-save"
msgstr ""
@@ -728,23 +753,23 @@ msgstr ""
msgid "None"
msgstr ""
-#: ../settings-dialogs/tweaks-settings.c:388
+#: ../settings-dialogs/tweaks-settings.c:396
msgid "Session manager socket"
msgstr ""
-#: ../settings-dialogs/workspace-settings.c:70
-#: ../settings-dialogs/workspace-settings.c:85
-#: ../settings-dialogs/workspace-settings.c:147
+#: ../settings-dialogs/workspace-settings.c:72
+#: ../settings-dialogs/workspace-settings.c:87
+#: ../settings-dialogs/workspace-settings.c:148
#, c-format
msgid "Workspace %d"
msgstr ""
-#: ../settings-dialogs/workspace-settings.c:133
+#: ../settings-dialogs/workspace-settings.c:134
#, c-format
msgid "Change the name of workspace %d"
msgstr ""
-#: ../settings-dialogs/workspace-settings.c:274
+#: ../settings-dialogs/workspace-settings.c:275
msgid "Workspace Name"
msgstr ""
diff --git a/settings-dialogs/tweaks-settings.c b/settings-dialogs/tweaks-settings.c
index c43a689e3..92162ac2b 100644
--- a/settings-dialogs/tweaks-settings.c
+++ b/settings-dialogs/tweaks-settings.c
@@ -150,6 +150,7 @@ wm_tweaks_dialog_configure_widgets (GladeXML *gxml)
/* Focus tab */
GtkWidget *prevent_focus_stealing_check = glade_xml_get_widget (gxml, "prevent_focus_stealing_check");
GtkWidget *focus_hint_check = glade_xml_get_widget (gxml, "focus_hint_check");
+ GtkWidget *repeat_urgent_blink = glade_xml_get_widget (gxml, "repeat_urgent_blink");
GtkWidget *activate_action_bring_option = glade_xml_get_widget (gxml, "activate_action_bring_option");
GtkWidget *activate_action_switch_option = glade_xml_get_widget (gxml, "activate_action_switch_option");
@@ -168,7 +169,6 @@ wm_tweaks_dialog_configure_widgets (GladeXML *gxml)
GtkWidget *wrap_layout_check = glade_xml_get_widget (gxml, "wrap_layout_check");
GtkWidget *wrap_cycle_check = glade_xml_get_widget (gxml, "wrap_cycle_check");
-
/* Placement tab */
GtkWidget *placement_ratio_scale = (GtkWidget *)gtk_range_get_adjustment (GTK_RANGE (glade_xml_get_widget (gxml, "placement_ratio_scale")));
GtkWidget *placement_center_option = glade_xml_get_widget (gxml, "placement_center_option");
@@ -294,6 +294,10 @@ wm_tweaks_dialog_configure_widgets (GladeXML *gxml)
"/general/focus_hint",
G_TYPE_BOOLEAN,
(GObject *)focus_hint_check, "active");
+ xfconf_g_property_bind (xfwm4_channel,
+ "/general/repeat_urgent_blink",
+ G_TYPE_BOOLEAN,
+ (GObject *)repeat_urgent_blink, "active");
/* Accessibility tab */
xfconf_g_property_bind (xfwm4_channel,
diff --git a/settings-dialogs/xfwm4-tweaks-dialog.glade b/settings-dialogs/xfwm4-tweaks-dialog.glade
index a9828783c..8d3987947 100644
--- a/settings-dialogs/xfwm4-tweaks-dialog.glade
+++ b/settings-dialogs/xfwm4-tweaks-dialog.glade
@@ -132,6 +132,21 @@ or "skip taskbar" properties set</property>
</packing>
</child>
<child>
+ <widget class="GtkCheckButton" id="repeat_urgent_blink">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Keep urgent windows blinking</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkVBox" id="prevent_focus_stealing_box">
<property name="visible">True</property>
<property name="sensitive">True</property>
@@ -205,7 +220,7 @@ or "skip taskbar" properties set</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
</widget>
diff --git a/src/client.c b/src/client.c
index 5a43eaecf..ad081d434 100644
--- a/src/client.c
+++ b/src/client.c
@@ -344,10 +344,14 @@ static gboolean
urgent_cb (gpointer data)
{
Client *c;
+ ScreenInfo *screen_info;
TRACE ("entering urgent_cb, iteration %i", c->blink_iterations);
c = (Client *) data;
+ g_return_val_if_fail (c != NULL, FALSE);
+ screen_info = c->screen_info;
+
if (c != clientGetFocus ())
{
c->blink_iterations++;
@@ -358,8 +362,24 @@ urgent_cb (gpointer data)
}
else if (c->blink_iterations > (8 * MAX_BLINK_ITERATIONS))
{
- c->blink_iterations = 0;
- }
+ /*
+ * A bit of hack. Instead of removing the callback
+ * if "repeat_urgent_blink" is unset, we simply reset
+ * the number of iterations at a higher value so that
+ * it does not blink.
+ * This way, if the user changes the setting later on,
+ * we don't have to go through all windows to reinstall
+ * the callbacks...
+ */
+ if (!screen_info->params->repeat_urgent_blink)
+ {
+ c->blink_iterations = 2 * MAX_BLINK_ITERATIONS;
+ }
+ else
+ {
+ c->blink_iterations = 0;
+ }
+ }
}
else if (c->blink_iterations)
{
diff --git a/src/settings.c b/src/settings.c
index bacaf3c37..0e8b30215 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -692,6 +692,7 @@ loadSettings (ScreenInfo *screen_info)
{"raise_on_click", NULL, G_TYPE_BOOLEAN, TRUE},
{"raise_on_focus", NULL, G_TYPE_BOOLEAN, TRUE},
{"raise_with_any_button", NULL, G_TYPE_BOOLEAN, TRUE},
+ {"repeat_urgent_blink", NULL, G_TYPE_BOOLEAN, TRUE},
{"resize_opacity", NULL, G_TYPE_INT, TRUE},
{"restore_on_move", NULL, G_TYPE_BOOLEAN, TRUE},
{"scroll_workspaces", NULL, G_TYPE_BOOLEAN, TRUE},
@@ -839,6 +840,8 @@ loadSettings (ScreenInfo *screen_info)
getBoolValue ("raise_on_click", rc);
screen_info->params->raise_with_any_button =
getBoolValue ("raise_with_any_button", rc);
+ screen_info->params->repeat_urgent_blink =
+ getBoolValue ("repeat_urgent_blink", rc);
screen_info->params->restore_on_move =
getBoolValue ("restore_on_move", rc);
screen_info->params->frame_opacity =
@@ -1220,7 +1223,6 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_
if (!strcmp (name, "box_move"))
{
screen_info->params->box_move = g_value_get_boolean (value);
-
}
else if (!strcmp (name, "box_resize"))
{
@@ -1244,6 +1246,10 @@ cb_xfwm4_channel_property_changed(XfconfChannel *channel, const gchar *property_
screen_info->params->raise_on_click = g_value_get_boolean (value);
update_grabs (screen_info);
}
+ else if (!strcmp (name, "repeat_urgent_blink"))
+ {
+ screen_info->params->repeat_urgent_blink = g_value_get_boolean (value);
+ }
else if (!strcmp (name, "snap_to_border"))
{
screen_info->params->snap_to_border = g_value_get_boolean (value);
diff --git a/src/settings.h b/src/settings.h
index 5e68eba78..94071f348 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -204,6 +204,7 @@ struct _XfwmParams
gboolean raise_on_click;
gboolean raise_on_focus;
gboolean raise_with_any_button;
+ gboolean repeat_urgent_blink;
gboolean scroll_workspaces;
gboolean show_app_icon;
gboolean show_dock_shadow;