зеркало из 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 nsINativeKeyBindings::DoCommandCallback gCurrentCallback;
|
||||||
static void *gCurrentCallbackData;
|
static void *gCurrentCallbackData;
|
||||||
|
static PRBool gHandled;
|
||||||
|
|
||||||
// Common GtkEntry and GtkTextView signals
|
// Common GtkEntry and GtkTextView signals
|
||||||
static void
|
static void
|
||||||
|
@ -56,6 +57,7 @@ copy_clipboard_cb(GtkWidget *w, gpointer user_data)
|
||||||
{
|
{
|
||||||
gCurrentCallback("cmd_copy", gCurrentCallbackData);
|
gCurrentCallback("cmd_copy", gCurrentCallbackData);
|
||||||
g_signal_stop_emission_by_name(w, "copy_clipboard");
|
g_signal_stop_emission_by_name(w, "copy_clipboard");
|
||||||
|
gHandled = PR_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -63,6 +65,7 @@ cut_clipboard_cb(GtkWidget *w, gpointer user_data)
|
||||||
{
|
{
|
||||||
gCurrentCallback("cmd_cut", gCurrentCallbackData);
|
gCurrentCallback("cmd_cut", gCurrentCallbackData);
|
||||||
g_signal_stop_emission_by_name(w, "cut_clipboard");
|
g_signal_stop_emission_by_name(w, "cut_clipboard");
|
||||||
|
gHandled = PR_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GTK distinguishes between display lines (wrapped, as they appear on the
|
// 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)
|
gint count, gpointer user_data)
|
||||||
{
|
{
|
||||||
g_signal_stop_emission_by_name(w, "delete_from_cursor");
|
g_signal_stop_emission_by_name(w, "delete_from_cursor");
|
||||||
|
gHandled = PR_TRUE;
|
||||||
|
|
||||||
PRBool forward = count > 0;
|
PRBool forward = count > 0;
|
||||||
if (PRUint32(del_type) >= NS_ARRAY_LENGTH(sDeleteCommands)) {
|
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)
|
gboolean extend_selection, gpointer user_data)
|
||||||
{
|
{
|
||||||
g_signal_stop_emission_by_name(w, "move_cursor");
|
g_signal_stop_emission_by_name(w, "move_cursor");
|
||||||
|
gHandled = PR_TRUE;
|
||||||
PRBool forward = count > 0;
|
PRBool forward = count > 0;
|
||||||
if (PRUint32(step) >= NS_ARRAY_LENGTH(sMoveCommands)) {
|
if (PRUint32(step) >= NS_ARRAY_LENGTH(sMoveCommands)) {
|
||||||
// unsupported movement type
|
// unsupported movement type
|
||||||
|
@ -203,6 +208,7 @@ paste_clipboard_cb(GtkWidget *w, gpointer user_data)
|
||||||
{
|
{
|
||||||
gCurrentCallback("cmd_paste", gCurrentCallbackData);
|
gCurrentCallback("cmd_paste", gCurrentCallbackData);
|
||||||
g_signal_stop_emission_by_name(w, "paste_clipboard");
|
g_signal_stop_emission_by_name(w, "paste_clipboard");
|
||||||
|
gHandled = PR_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GtkTextView-only signals
|
// GtkTextView-only signals
|
||||||
|
@ -211,6 +217,7 @@ select_all_cb(GtkWidget *w, gboolean select, gpointer user_data)
|
||||||
{
|
{
|
||||||
gCurrentCallback("cmd_selectAll", gCurrentCallbackData);
|
gCurrentCallback("cmd_selectAll", gCurrentCallbackData);
|
||||||
g_signal_stop_emission_by_name(w, "select_all");
|
g_signal_stop_emission_by_name(w, "select_all");
|
||||||
|
gHandled = PR_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -283,17 +290,15 @@ nsNativeKeyBindings::KeyPress(const nsNativeKeyEvent& aEvent,
|
||||||
gCurrentCallback = aCallback;
|
gCurrentCallback = aCallback;
|
||||||
gCurrentCallbackData = aCallbackData;
|
gCurrentCallbackData = aCallbackData;
|
||||||
|
|
||||||
PRBool handled = PR_FALSE;
|
gHandled = PR_FALSE;
|
||||||
|
|
||||||
if (gtk_bindings_activate(GTK_OBJECT(mNativeTarget),
|
gtk_bindings_activate(GTK_OBJECT(mNativeTarget),
|
||||||
keyCode, GdkModifierType(modifiers))) {
|
keyCode, GdkModifierType(modifiers));
|
||||||
handled = PR_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
gCurrentCallback = nsnull;
|
gCurrentCallback = nsnull;
|
||||||
gCurrentCallbackData = nsnull;
|
gCurrentCallbackData = nsnull;
|
||||||
|
|
||||||
return handled;
|
return gHandled;
|
||||||
}
|
}
|
||||||
|
|
||||||
PRBool
|
PRBool
|
||||||
|
|
Загрузка…
Ссылка в новой задаче