Skip to content

Commit 957ed14

Browse files
committed
Renaming: Fix renaming in the list view being canceled when the
keyboard layout changes. Using ibus for keyboard layout/ime changes causes a brief focus loss when switching layouts, causing an active renaming operation to be completed early. Block the cell-renderer's focus-out handler and remove our own. We still get correct behavior thru explicit selection changes in the view or enter/escape. Fixes #3697.
1 parent 86e09b0 commit 957ed14

1 file changed

Lines changed: 5 additions & 15 deletions

File tree

src/nemo-list-view.c

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1701,19 +1701,6 @@ sort_column_changed_callback (GtkTreeSortable *sortable,
17011701
view->details->last_sort_attr = sort_attr;
17021702
}
17031703

1704-
static gboolean
1705-
editable_focus_out_cb (GtkWidget *widget,
1706-
GdkEvent *event,
1707-
gpointer user_data)
1708-
{
1709-
NemoListView *view = user_data;
1710-
1711-
nemo_view_set_is_renaming (NEMO_VIEW (view), FALSE);
1712-
nemo_view_unfreeze_updates (NEMO_VIEW (view));
1713-
1714-
return GDK_EVENT_PROPAGATE;
1715-
}
1716-
17171704
static void
17181705
cell_renderer_editing_started_cb (GtkCellRenderer *renderer,
17191706
GtkCellEditable *editable,
@@ -1730,8 +1717,11 @@ cell_renderer_editing_started_cb (GtkCellRenderer *renderer,
17301717

17311718
list_view->details->original_name = g_strdup (gtk_entry_get_text (entry));
17321719

1733-
g_signal_connect (entry, "focus-out-event",
1734-
G_CALLBACK (editable_focus_out_cb), list_view);
1720+
g_signal_handlers_block_matched (entry,
1721+
G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_DATA,
1722+
g_signal_lookup ("focus-out-event", GTK_TYPE_WIDGET),
1723+
0, NULL, NULL,
1724+
renderer);
17351725

17361726
nemo_clipboard_set_up_editable
17371727
(GTK_EDITABLE (entry),

0 commit comments

Comments
 (0)