summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-10-28 13:22:54 +0100
committerGravatar waker <wakeroid@gmail.com>2012-10-28 13:22:54 +0100
commitedc1a13b161553ce55c6bba05001245f45323e3a (patch)
treee1a8b70cb33c25d9cbc8de9f565f2c28d08431c1 /plugins
parent02502f649e269ec34cf22f6a620f7ffcafec69c5 (diff)
gtkui: fixed few focus issues
Diffstat (limited to 'plugins')
-rw-r--r--plugins/gtkui/ddblistview.c25
-rw-r--r--plugins/gtkui/gtkui.c2
-rw-r--r--plugins/gtkui/widgets.c4
3 files changed, 9 insertions, 22 deletions
diff --git a/plugins/gtkui/ddblistview.c b/plugins/gtkui/ddblistview.c
index 557da26b..e13c7456 100644
--- a/plugins/gtkui/ddblistview.c
+++ b/plugins/gtkui/ddblistview.c
@@ -278,12 +278,6 @@ ddb_listview_motion_notify_event (GtkWidget *widget,
gboolean
ddb_listview_list_key_press_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data);
-gboolean
-ddb_listview_list_focus_in_event (GtkWidget *widget, GdkEvent *event, gpointer user_data);
-
-gboolean
-ddb_listview_list_focus_out_event (GtkWidget *widget, GdkEvent *event, gpointer user_data);
-
static void
ddb_listview_class_init(DdbListviewClass *class)
{
@@ -482,8 +476,6 @@ ddb_listview_init(DdbListview *listview)
NULL);
g_signal_connect ((gpointer)listview->list, "key_press_event", G_CALLBACK (ddb_listview_list_key_press_event), NULL);
- g_signal_connect ((gpointer)listview->list, "focus_in_event", G_CALLBACK (ddb_listview_list_focus_in_event), NULL);
- g_signal_connect ((gpointer)listview->list, "focus_out_event", G_CALLBACK (ddb_listview_list_focus_out_event), NULL);
}
GtkWidget * ddb_listview_new()
@@ -1285,7 +1277,6 @@ ddb_listview_list_render_row_background (DdbListview *ps, cairo_t *cr, DdbListvi
if (gtk_widget_get_style (treeview)->depth == -1) {
return; // drawing was called too early
}
- gtk_widget_set_can_focus (GTK_WIDGET (treeview), TRUE);
#endif
}
int sel = it && ps->binding->is_selected (it);
@@ -1313,6 +1304,9 @@ ddb_listview_list_render_row_background (DdbListview *ps, cairo_t *cr, DdbListvi
gtk_paint_flat_box (gtk_widget_get_style (treeview), cr, GTK_STATE_SELECTED, GTK_SHADOW_NONE, treeview, even ? "cell_even_ruled" : "cell_odd_ruled", x-1, y-1, w+1, h+1);
#else
gtk_paint_flat_box (gtk_widget_get_style (treeview), ps->list->window, GTK_STATE_SELECTED, GTK_SHADOW_NONE, NULL, treeview, even ? "cell_even_ruled" : "cell_odd_ruled", x, y, w, h);
+// if (GTK_WIDGET_HAS_FOCUS (ps->list)) {
+// gtk_paint_focus (gtk_widget_get_style (treeview), ps->list->window, GTK_STATE_SELECTED, NULL, treeview, "treeview", x, y, w, h);
+// }
#endif
}
else {
@@ -1331,7 +1325,7 @@ ddb_listview_list_render_row_background (DdbListview *ps, cairo_t *cr, DdbListvi
#endif
}
}
- if (cursor) {
+ if (cursor && GTK_WIDGET_HAS_FOCUS (ps->list)) {
// not all gtk engines/themes render focus rectangle in treeviews
// but we want it anyway
//treeview->style->fg_gc[GTK_STATE_NORMAL]
@@ -3163,14 +3157,3 @@ ddb_listview_list_key_press_event (GtkWidget *widget, GdkEventKey *event, gpoint
}
-gboolean
-ddb_listview_list_focus_in_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) {
- gtk_widget_set_can_focus (widget, TRUE);
- return FALSE;
-}
-
-gboolean
-ddb_listview_list_focus_out_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) {
- gtk_widget_set_can_focus (widget, FALSE);
- return FALSE;
-}
diff --git a/plugins/gtkui/gtkui.c b/plugins/gtkui/gtkui.c
index ff0a1bf2..38000f7b 100644
--- a/plugins/gtkui/gtkui.c
+++ b/plugins/gtkui/gtkui.c
@@ -81,8 +81,8 @@ int gtkui_embolden_current_track;
void
gtkpl_init (void) {
theme_treeview = gtk_tree_view_new ();
- gtk_widget_set_can_focus (theme_treeview, FALSE);
gtk_widget_show (theme_treeview);
+ gtk_widget_set_can_focus (theme_treeview, FALSE);
GtkWidget *vbox1 = lookup_widget (mainwin, "vbox1");
gtk_box_pack_start (GTK_BOX (vbox1), theme_treeview, FALSE, FALSE, 0);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (theme_treeview), TRUE);
diff --git a/plugins/gtkui/widgets.c b/plugins/gtkui/widgets.c
index 3d151bed..7d6893d3 100644
--- a/plugins/gtkui/widgets.c
+++ b/plugins/gtkui/widgets.c
@@ -810,6 +810,7 @@ w_splitter_unlock (w_splitter_t *w) {
int vert = w->base.type == "vsplitter";
// convert back to vpaned
GtkWidget *paned = vert ? gtk_vpaned_new () : gtk_hpaned_new ();
+ gtk_widget_set_can_focus (paned, FALSE);
gtk_widget_show (paned);
GList *lst = gtk_container_get_children (GTK_CONTAINER (w->box));
@@ -947,6 +948,7 @@ w_vsplitter_create (void) {
memset (w, 0, sizeof (w_splitter_t));
w->position = -1;
w->base.widget = gtk_vpaned_new ();
+ gtk_widget_set_can_focus (w->base.widget, FALSE);
w->base.append = w_splitter_add;
w->base.remove = w_splitter_remove;
w->base.replace = w_splitter_replace;
@@ -1001,6 +1003,7 @@ w_hsplitter_create (void) {
memset (w, 0, sizeof (w_splitter_t));
w->position = -1;
w->base.widget = gtk_hpaned_new ();
+ gtk_widget_set_can_focus (w->base.widget, FALSE);
w->base.append = w_splitter_add;
w->base.remove = w_splitter_remove;
w->base.replace = w_splitter_replace;
@@ -1766,6 +1769,7 @@ w_selproperties_create (void) {
memset (w, 0, sizeof (w_selproperties_t));
w->base.widget = gtk_scrolled_window_new (NULL, NULL);
+ gtk_widget_set_can_focus (w->base.widget, FALSE);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (w->base.widget), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
w->tree = gtk_tree_view_new ();
gtk_widget_show (w->tree);