зеркало из https://github.com/mozilla/pjs.git
Bug 288729 gtk2 native keybindings prevent default enter event r+sr=bryner a=asa
This commit is contained in:
Родитель
d4f92712c4
Коммит
69d6bf8597
|
@ -49,6 +49,7 @@
|
|||
|
||||
static nsINativeKeyBindings::DoCommandCallback gCurrentCallback;
|
||||
static void *gCurrentCallbackData;
|
||||
static PRBool gHandled;
|
||||
|
||||
// Common GtkEntry and GtkTextView signals
|
||||
static void
|
||||
|
@ -56,6 +57,7 @@ copy_clipboard_cb(GtkWidget *w, gpointer user_data)
|
|||
{
|
||||
gCurrentCallback("cmd_copy", gCurrentCallbackData);
|
||||
g_signal_stop_emission_by_name(w, "copy_clipboard");
|
||||
gHandled = PR_TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -63,6 +65,7 @@ cut_clipboard_cb(GtkWidget *w, gpointer user_data)
|
|||
{
|
||||
gCurrentCallback("cmd_cut", gCurrentCallbackData);
|
||||
g_signal_stop_emission_by_name(w, "cut_clipboard");
|
||||
gHandled = PR_TRUE;
|
||||
}
|
||||
|
||||
// GTK distinguishes between display lines (wrapped, as they appear on the
|
||||
|
@ -90,6 +93,7 @@ delete_from_cursor_cb(GtkWidget *w, GtkDeleteType del_type,
|
|||
gint count, gpointer user_data)
|
||||
{
|
||||
g_signal_stop_emission_by_name(w, "delete_from_cursor");
|
||||
gHandled = PR_TRUE;
|
||||
|
||||
PRBool forward = count > 0;
|
||||
if (PRUint32(del_type) >= NS_ARRAY_LENGTH(sDeleteCommands)) {
|
||||
|
@ -181,6 +185,7 @@ move_cursor_cb(GtkWidget *w, GtkMovementStep step, gint count,
|
|||
gboolean extend_selection, gpointer user_data)
|
||||
{
|
||||
g_signal_stop_emission_by_name(w, "move_cursor");
|
||||
gHandled = PR_TRUE;
|
||||
PRBool forward = count > 0;
|
||||
if (PRUint32(step) >= NS_ARRAY_LENGTH(sMoveCommands)) {
|
||||
// unsupported movement type
|
||||
|
@ -203,6 +208,7 @@ paste_clipboard_cb(GtkWidget *w, gpointer user_data)
|
|||
{
|
||||
gCurrentCallback("cmd_paste", gCurrentCallbackData);
|
||||
g_signal_stop_emission_by_name(w, "paste_clipboard");
|
||||
gHandled = PR_TRUE;
|
||||
}
|
||||
|
||||
// GtkTextView-only signals
|
||||
|
@ -211,6 +217,7 @@ select_all_cb(GtkWidget *w, gboolean select, gpointer user_data)
|
|||
{
|
||||
gCurrentCallback("cmd_selectAll", gCurrentCallbackData);
|
||||
g_signal_stop_emission_by_name(w, "select_all");
|
||||
gHandled = PR_TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -283,17 +290,15 @@ nsNativeKeyBindings::KeyPress(const nsNativeKeyEvent& aEvent,
|
|||
gCurrentCallback = aCallback;
|
||||
gCurrentCallbackData = aCallbackData;
|
||||
|
||||
PRBool handled = PR_FALSE;
|
||||
gHandled = PR_FALSE;
|
||||
|
||||
if (gtk_bindings_activate(GTK_OBJECT(mNativeTarget),
|
||||
keyCode, GdkModifierType(modifiers))) {
|
||||
handled = PR_TRUE;
|
||||
}
|
||||
gtk_bindings_activate(GTK_OBJECT(mNativeTarget),
|
||||
keyCode, GdkModifierType(modifiers));
|
||||
|
||||
gCurrentCallback = nsnull;
|
||||
gCurrentCallbackData = nsnull;
|
||||
|
||||
return handled;
|
||||
return gHandled;
|
||||
}
|
||||
|
||||
PRBool
|
||||
|
|
Загрузка…
Ссылка в новой задаче