[gtk+] Use standard mac shortcuts
- From: Javier Jardón <jjardon src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Use standard mac shortcuts
- Date: Sun, 25 Oct 2009 23:03:13 +0000 (UTC)
commit 3c510f028f9a399c80851d2cb8c230e930abd4ff
Author: Yevgen Muntyan <muntyan tamu edu>
Date: Sun Oct 25 23:46:19 2009 +0100
Use standard mac shortcuts
This changes Ctrl-X, Ctrl-C, etc. to Cmd-X, Cmd-C, etc. Also,
Alt-Left and Alt-Right in text widgets bound to Ctrl-Left and
Ctrl-Right actions
https://bugzilla.gnome.org/show_bug.cgi?id=530351
gtk/Makefile.am | 16 ++++++++++++++--
gtk/gtkimcontextsimple.c | 3 ++-
gtk/gtkprivate.h | 9 +++++++++
gtk/gtksettings.c | 8 +++++++-
gtk/gtkstock.c | 1 +
gtk/gtktreeview.c | 4 ++--
6 files changed, 35 insertions(+), 6 deletions(-)
---
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index 966cf11..f10bb19 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -915,8 +915,19 @@ if DISABLE_EXPLICIT_DEPS
$(SHELL) $(top_srcdir)/sanitize-la.sh $(DESTDIR)$(libdir)/$(gtktargetlib)
endif
+if USE_QUARTZ
+install-mac-key-theme:
+ $(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Mac/gtk-2.0-key
+ $(INSTALL_DATA) $(srcdir)/gtkrc.key.mac $(DESTDIR)$(datadir)/themes/Mac/gtk-2.0-key/gtkrc
+uninstall-mac-key-theme:
+ rm -f $(DESTDIR)$(datadir)/themes/Mac/gtk-2.0-key/gtkrc
+else
+install-mac-key-theme:
+uninstall-mac-key-theme:
+endif
+
# Install a RC file for the default GTK+ theme, and key themes
-install-data-local: install-ms-lib install-def-file
+install-data-local: install-ms-lib install-def-file install-mac-key-theme
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Raleigh/gtk-2.0
$(INSTALL_DATA) $(srcdir)/gtkrc.default $(DESTDIR)$(datadir)/themes/Raleigh/gtk-2.0/gtkrc
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key
@@ -924,7 +935,7 @@ install-data-local: install-ms-lib install-def-file
$(mkinstalldirs) $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key
$(INSTALL_DATA) $(srcdir)/gtkrc.key.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
-uninstall-local: uninstall-ms-lib uninstall-def-file
+uninstall-local: uninstall-ms-lib uninstall-def-file uninstall-mac-key-theme
rm -f $(DESTDIR)$(datadir)/themes/Raleigh/gtk-2.0/gtkrc
rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0-key/gtkrc
rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-2.0-key/gtkrc
@@ -1332,6 +1343,7 @@ EXTRA_DIST += \
gtkrc.default \
gtkrc.key.default \
gtkrc.key.emacs \
+ gtkrc.key.mac \
makefile.msc \
makefile.msc.in \
makegtkalias.pl \
diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c
index 62bab7c..5c636da 100644
--- a/gtk/gtkimcontextsimple.c
+++ b/gtk/gtkimcontextsimple.c
@@ -22,6 +22,7 @@
#include <string.h>
#include <gdk/gdkkeysyms.h>
+#include "gtkprivate.h"
#include "gtkaccelgroup.h"
#include "gtkimcontextsimple.h"
#include "gtksettings.h"
@@ -595,7 +596,7 @@ check_algorithmically (GtkIMContextSimple *context_simple,
* with Ctrl-Shift-U, then release the modifiers before typing any
* digits, and enter the digits without modifiers.
*/
-#define HEX_MOD_MASK (GDK_CONTROL_MASK | GDK_SHIFT_MASK)
+#define HEX_MOD_MASK (GTK_DEFAULT_ACCEL_MOD_MASK | GDK_SHIFT_MASK)
static gboolean
check_hex (GtkIMContextSimple *context_simple,
diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h
index 5e51844..7ba5a5d 100644
--- a/gtk/gtkprivate.h
+++ b/gtk/gtkprivate.h
@@ -103,6 +103,15 @@ gboolean _gtk_fnmatch (const char *pattern,
#define GTK_PARAM_WRITABLE G_PARAM_WRITABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
#define GTK_PARAM_READWRITE G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB
+/* Many keyboard shortcuts for Mac are the same as for X
+ * except they use Command key instead of Control (e.g. Cut,
+ * Copy, Paste). This symbol is for those simple cases. */
+#ifndef GDK_WINDOWING_QUARTZ
+#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_CONTROL_MASK
+#else
+#define GTK_DEFAULT_ACCEL_MOD_MASK GDK_META_MASK
+#endif
+
G_END_DECLS
#endif /* __GTK_PRIVATE_H__ */
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 4917263..b83d95b 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -35,6 +35,12 @@
#include <pango/pangofc-fontmap.h>
#endif
+#ifdef GDK_WINDOWING_QUARTZ
+#define DEFAULT_KEY_THEME "Mac"
+#else
+#define DEFAULT_KEY_THEME NULL
+#endif
+
#define DEFAULT_TIMEOUT_INITIAL 200
#define DEFAULT_TIMEOUT_REPEAT 20
#define DEFAULT_TIMEOUT_EXPAND 500
@@ -310,7 +316,7 @@ gtk_settings_class_init (GtkSettingsClass *class)
g_param_spec_string ("gtk-key-theme-name",
P_("Key Theme Name"),
P_("Name of key theme RC file to load"),
- NULL,
+ DEFAULT_KEY_THEME,
GTK_PARAM_READWRITE),
NULL);
g_assert (result == PROP_KEY_THEME_NAME);
diff --git a/gtk/gtkstock.c b/gtk/gtkstock.c
index 153ef08..f896dec 100644
--- a/gtk/gtkstock.c
+++ b/gtk/gtkstock.c
@@ -27,6 +27,7 @@
#include "config.h"
#include <string.h>
+#include "gtkprivate.h"
#include "gtkstock.h"
#include "gtkiconfactory.h"
#include "gtkintl.h"
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index a0fdf33..3aad46c 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -14326,7 +14326,7 @@ gtk_tree_view_search_key_press_event (GtkWidget *widget,
retval = TRUE;
}
- if (((event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) == (GDK_CONTROL_MASK | GDK_SHIFT_MASK))
+ if (((event->state & (GTK_DEFAULT_ACCEL_MOD_MASK | GDK_SHIFT_MASK)) == (GTK_DEFAULT_ACCEL_MOD_MASK | GDK_SHIFT_MASK))
&& (event->keyval == GDK_g || event->keyval == GDK_G))
{
if (!gtk_tree_view_search_move (widget, tree_view, TRUE))
@@ -14344,7 +14344,7 @@ gtk_tree_view_search_key_press_event (GtkWidget *widget,
retval = TRUE;
}
- if (((event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) == GDK_CONTROL_MASK)
+ if (((event->state & (GTK_DEFAULT_ACCEL_MOD_MASK | GDK_SHIFT_MASK)) == GTK_DEFAULT_ACCEL_MOD_MASK)
&& (event->keyval == GDK_g || event->keyval == GDK_G))
{
if (!gtk_tree_view_search_move (widget, tree_view, FALSE))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]