Gnome pager - suggestions/bugs
- From: Daniel Burrows <Daniel_Burrows brown edu>
- To: gnome-list gnome org
- Subject: Gnome pager - suggestions/bugs
- Date: Wed, 27 Jan 1999 22:35:00 -0500
The pager would be much, much more useful if it were possible to drag windows
around inside it and to drag windows onto it. (like in the olvwm pager)
Also, why does button 2 (which requires chording on my mouse) have to be
pressed to minimize an app using the task list? I prefer the method used by
icewm (and Win98 for that matter), where the first button can minimize programs.
(I'm not sure what button 2 _should_ be used for, but I want to use button 1 to
minimize apps. :-)
In addition, I use focus-follows-mouse and would like to extend that to the
pager, so that if I move the mouse over the task-button of a visible,
non-iconified window, it gains focus. I've attached a patch which
attempts to do both of these, but the focus-follows-mouse stuff doesn't quite
work, mainly because windows get raised instead of just being focused. Maybe
someone with a few more X clues than me can fix that.
Windows which are deiconified by clicking on their taskbar
representation get an active border but their button remains undepressed and
they don't have input focus. What's this a symptom of?
One other thing, when I select an unfocused window in the taskbar, the
following sequence of events occurs:
(1) I press the button down.
(2) the task button depresses.
(3) I release the button.
(4) The task button momentarily flickers back to an undepressed state,
and the window gains focus (at about the same time, I don't know which
comes first)
(5) The task button becomes depressed again and the
Eliminating the flicker in (4) would be a nice aesthetic change.
Ok, hope this is useful!
--
Daniel Burrows
Nothing is hopeless.
PROOF:
(a) Assume the opposite.
(b) If something _is_ hopeless, then its condition can only improve.
(c) If its condition can only improve, then there must be hope for it.
(d) Therefore, nothing is hopeless. QED.
Index: gnomepager_applet.c
===================================================================
RCS file: /cvs/gnome/gnome-core/applets/gnome-pager/gnomepager_applet.c,v
retrieving revision 1.33
diff -u -r1.33 gnomepager_applet.c
--- gnomepager_applet.c 1999/01/24 22:06:33 1.33
+++ gnomepager_applet.c 1999/01/28 02:51:37
@@ -30,6 +30,7 @@
gchar show_pager = 1;
gchar show_icons = 1;
gchar show_arrow = 1;
+gchar taskbar_mouse_focus=1;
gint area_w = 1;
gint area_h = 1;
gint area_x = 0;
@@ -196,6 +197,20 @@
show_pager = 0;
}
+void
+cb_check_taskbar_mouse_focus(GtkWidget *widget, gpointer data)
+{
+ GtkWidget *prop;
+
+ prop = gtk_object_get_data(GTK_OBJECT(widget),"prop");
+ if(prop)
+ gnome_property_box_changed(GNOME_PROPERTY_BOX(prop));
+ if (GTK_TOGGLE_BUTTON(widget)->active)
+ taskbar_mouse_focus=1;
+ else
+ taskbar_mouse_focus=0;
+}
+
void
cb_adj_max_width(GtkAdjustment *adj, GtkAdjustment *adj1)
{
@@ -303,6 +318,7 @@
gnome_config_set_int("gnome_pager/stuff/show_pager", show_pager);
gnome_config_set_int("gnome_pager/stuff/show_icons", show_icons);
gnome_config_set_int("gnome_pager/stuff/show_arrow", show_arrow);
+ gnome_config_set_int("gnome_pager/stuff/taskbar_mouse_focus",taskbar_mouse_focus);
gnome_config_sync();
widget = NULL;
data = NULL;
@@ -383,6 +399,14 @@
gtk_table_attach(GTK_TABLE(table), check,
2, 4, 5, 6, GTK_FILL|GTK_EXPAND,0,0,0);
+ check=gtk_check_button_new_with_label(_("Use mouse-focus in taskbar"));
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check),taskbar_mouse_focus);
+ gtk_signal_connect(GTK_OBJECT(check),"clicked",
+ GTK_SIGNAL_FUNC(cb_check_taskbar_mouse_focus),NULL);
+ gtk_widget_show(check);
+ gtk_table_attach(GTK_TABLE(table),check,
+ 2,4,6,7,GTK_FILL | GTK_EXPAND,0,0,0);
+
adj = (GtkAdjustment *)gtk_adjustment_new((gfloat)max_task_width, 20,
(gfloat)gdk_screen_width(),
16, 16, 16 );
@@ -1391,6 +1415,7 @@
show_pager = gnome_config_get_int("gnome_pager/stuff/show_pager=1");
show_icons = gnome_config_get_int("gnome_pager/stuff/show_icons=1");
show_arrow = gnome_config_get_int("gnome_pager/stuff/show_arrow=1");
+ taskbar_mouse_focus = gnome_config_get_int("gnome_pager/stuff/taskbar_mouse_focus=1");
gdk_error_warnings = 0;
get_desktop_names();
@@ -1890,6 +1915,8 @@
Task *t;
t = (Task *)gtk_object_get_data(GTK_OBJECT(widget), "task");
+ if(taskbar_mouse_focus&&!t->iconified&&!t->shaded)
+ client_win_show(t);
set_task_info_to_button(t);
}
@@ -1921,16 +1948,14 @@
button = event->button;
t = (Task *)gtk_object_get_data(GTK_OBJECT(widget), "task");
- set_task_info_to_button(t);
if (button == 1)
- client_win_show(t);
- else if (button == 2)
{
- if (t->iconified)
+ if (t->iconified || !t->focused)
client_win_show(t);
else
client_win_iconify(t);
}
+ set_task_info_to_button(t);
}
void
PGP signature
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]