⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtk+-2.4.14-xynth.diff

📁 CS架构的多平台的GUI系统
💻 DIFF
📖 第 1 页 / 共 5 页
字号:
+	return TRUE; }  /*diff -U 3 -H -d -r -N gtk+-2.4.14/gdk/linux-fb/gdkgeometry-fb.c gtk+-2.4.14-xynth/gdk/linux-fb/gdkgeometry-fb.c--- gtk+-2.4.14/gdk/linux-fb/gdkgeometry-fb.c	2004-03-06 05:37:04.000000000 +0200+++ gtk+-2.4.14-xynth/gdk/linux-fb/gdkgeometry-fb.c	2005-12-08 18:05:04.000000000 +0200@@ -49,9 +49,7 @@ 			      dest_rect.x, dest_rect.y, 			      dest_rect.width, dest_rect.height, 			      FALSE, FALSE);-      gdk_shadow_fb_update (dest_rect.x - dx, dest_rect.y - dy,-			    dest_rect.x - dx + dest_rect.width,-			    dest_rect.y - dy + dest_rect.height);+	gdk_shadow_fb_update(GDK_DRAWABLE_IMPL(window), dest_rect.x - dx, dest_rect.y - dy, dest_rect.x - dx + dest_rect.width, dest_rect.y - dy + dest_rect.height);     }      gdk_window_invalidate_region (window, invalidate_region, TRUE);diff -U 3 -H -d -r -N gtk+-2.4.14/gdk/linux-fb/gdkglobals-fb.c gtk+-2.4.14-xynth/gdk/linux-fb/gdkglobals-fb.c--- gtk+-2.4.14/gdk/linux-fb/gdkglobals-fb.c	2004-03-06 06:00:07.000000000 +0200+++ gtk+-2.4.14-xynth/gdk/linux-fb/gdkglobals-fb.c	2005-12-08 18:05:04.000000000 +0200@@ -45,4 +45,3 @@ GdkGC *_gdk_fb_screen_gc = NULL; GdkAtom _gdk_selection_property; GdkFBAngle _gdk_fb_screen_angle = GDK_FB_0_DEGREES;-volatile gboolean _gdk_fb_is_active_vt = FALSE;diff -U 3 -H -d -r -N gtk+-2.4.14/gdk/linux-fb/gdkkeyboard-fb.c gtk+-2.4.14-xynth/gdk/linux-fb/gdkkeyboard-fb.c--- gtk+-2.4.14/gdk/linux-fb/gdkkeyboard-fb.c	2004-03-06 05:37:04.000000000 +0200+++ gtk+-2.4.14-xynth/gdk/linux-fb/gdkkeyboard-fb.c	2005-12-08 18:05:04.000000000 +0200@@ -16,6 +16,12 @@  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,  * Boston, MA 02111-1307, USA.  */+ +/*+ * Gtk-Xynth port is based on linux-fb port+ * Xynth Team+ * http://www.xynth.org+ */  #include <config.h> #include <gdk/gdk.h>@@ -36,24 +42,13 @@ typedef struct _GdkFBKeyboardDevice GdkFBKeyboardDevice;  struct _GdkFBKeyboard {-  gint fd;-  GIOChannel *io;-  gint io_tag;-   guint modifier_state;   guint caps_lock : 1;--  gint group;-  gint level;-     GdkFBKeyboardDevice *dev; };  struct _GdkFBKeyboardDevice {   char *name;-  gboolean (*open)(GdkFBKeyboard *kb);-  void (*close)(GdkFBKeyboard *kb);-   guint    (*lookup_key)               (GdkFBKeyboard       *kb, 					const GdkKeymapKey  *key);   gboolean (*translate_keyboard_state) (GdkFBKeyboard       *kb,@@ -73,15 +68,11 @@ 					GdkKeymapKey       **keys, 					guint              **keyvals, 					gint                *n_entries);--  gpointer driver_data; };  static GdkFBKeyboard *gdk_fb_keyboard = NULL; static GdkKeymap *default_keymap = NULL; -static gboolean xlate_open            (GdkFBKeyboard       *kb);-static void     xlate_close           (GdkFBKeyboard       *kb); static guint    xlate_lookup          (GdkFBKeyboard       *kb, 				       const GdkKeymapKey  *key); static gboolean xlate_translate       (GdkFBKeyboard       *kb,@@ -102,8 +93,6 @@ 				       guint              **keyvals, 				       gint                *n_entries); -static gboolean raw_open            (GdkFBKeyboard       *kb);-static void     raw_close           (GdkFBKeyboard       *kb); static guint    raw_lookup          (GdkFBKeyboard       *kb, 				     const GdkKeymapKey  *key); static gboolean raw_translate       (GdkFBKeyboard       *kb,@@ -129,8 +118,6 @@ {   {     "xlate",-    xlate_open,-    xlate_close,     xlate_lookup,     xlate_translate,     xlate_get_for_keyval,@@ -138,8 +125,6 @@   },   {     "raw",-    raw_open,-    raw_close,     raw_lookup,     raw_translate,     raw_get_for_keyval,@@ -165,7 +150,6 @@ PangoDirection gdk_keymap_get_direction (GdkKeymap *keymap) {-  /* FIXME: Only supports LTR keymaps at the moment */   return PANGO_DIRECTION_LTR; } @@ -184,7 +168,6 @@    gdk_fb_keyboard = g_new0 (GdkFBKeyboard, 1);   keyb = gdk_fb_keyboard;-  keyb->fd = -1;      keyb_type = getenv ("GDK_KEYBOARD_TYPE");   @@ -205,38 +188,10 @@    keyb->dev = &keyb_devs[i]; -  if (open_dev)-    return gdk_fb_keyboard_open ();-  else     return TRUE; }  gboolean-gdk_fb_keyboard_open (void)-{-  GdkFBKeyboard *keyb;-  GdkFBKeyboardDevice *device;--  keyb = gdk_fb_keyboard;-  device = keyb->dev;--  if (!device->open(keyb))-    {-      g_warning ("Keyboard driver open failed");-      return FALSE;-    }--  return TRUE;-}--void -gdk_fb_keyboard_close (void)-{-  gdk_fb_keyboard->dev->close(gdk_fb_keyboard);-}---gboolean gdk_keymap_get_entries_for_keyval (GdkKeymap     *keymap,                                    guint          keyval,                                    GdkKeymapKey **keys,@@ -306,59 +261,25 @@ 							 consumed_modifiers); } -static void-gdk_fb_handle_key (guint hw_keycode,-		   guint keyval,-		   guint modifier_state,-		   guint8 group,-		   gchar *string,-		   gint string_length,-		   gboolean key_up)+void gdk_fb_handle_key (guint hw_keycode, guint keyval, guint modifier_state, guint8 group, gchar *string, gint string_length, gboolean key_up) {-  GdkWindow *win;-  GdkEvent *event;+	GdkWindow *win;+	GdkEvent *event; -  /* handle some magic keys */-  if (key_up &&-      (modifier_state & GDK_CONTROL_MASK) &&-      (modifier_state & GDK_MOD1_MASK))-    {-      if (keyval == GDK_BackSpace)-	{-	  ioctl (gdk_display->tty_fd, KDSKBMODE, K_XLATE);-	  exit (1);+	win = gdk_fb_keyboard_event_window (gdk_fb_window_find_focus (), key_up ? GDK_KEY_RELEASE : GDK_KEY_PRESS);+	if (win) {+		event = gdk_event_make (win, key_up ? GDK_KEY_RELEASE : GDK_KEY_PRESS, TRUE);+		event->key.state = modifier_state;+		event->key.keyval = keyval;+		event->key.string = string;+		event->key.length = string_length;+		event->key.hardware_keycode = hw_keycode;+		event->key.group = group;+	} else {+		g_free (string); 	}-	  -      if (keyval == GDK_Return)-	gdk_fb_redraw_all ();-    }--  win = gdk_fb_keyboard_event_window (gdk_fb_window_find_focus (),-				      key_up ? GDK_KEY_RELEASE : GDK_KEY_PRESS);-  if (win)-    {-      event = gdk_event_make (win,-			      key_up ? GDK_KEY_RELEASE : GDK_KEY_PRESS,-			      TRUE);-    -      event->key.state = modifier_state;-      event->key.keyval = keyval;-      event->key.string = string;-      event->key.length = string_length;-      event->key.hardware_keycode = hw_keycode;-      event->key.group = group;-    }-  else-    g_free (string); } -/******************************************************- ********* Device specific keyboard code **************- ******************************************************/---/* XLATE keyboard driver */- struct {   char *str;   guint code;@@ -377,7 +298,7 @@   {"\x32\x31\x7e", GDK_F10},   {"\x32\x33\x7e", GDK_F11},   {"\x32\x34\x7e", GDK_F12},-  +   {"\x32\x35\x7e", GDK_F1, GDK_SHIFT_MASK},   {"\x32\x36\x7e", GDK_F2, GDK_SHIFT_MASK},   {"\x32\x38\x7e", GDK_F3, GDK_SHIFT_MASK},@@ -680,206 +601,6 @@   {0, 0}, }; -static gboolean-iscode (char *code, char *str, int str_max)-{-  int i;--  for (i = 0; code[i] && (i < str_max); i++)-    {-      if (code[i] != str[i])-	return FALSE;-    }-  return (code[i] == 0);-}--static gboolean-xlate_io (GIOChannel *gioc,-	  GIOCondition cond,-	  gpointer data)-{-  GdkFBKeyboard *keyb = (GdkFBKeyboard *)data;-  guchar buf[128];-  guint keycode;-  guint modifier;-  gboolean handled;-  int i, n, j;-  int left;-  -  n = read (keyb->fd, buf, sizeof(buf));-  if (n <= 0)-    g_error ("Nothing from keyboard!");--  for (i = 0; i < n; )-    {-      handled = FALSE;-      modifier = 0;-      if ((buf[i] == 27) && (i+1 != n)) /* Escape */-	{-	  /* Esc is not the last char in buffer, interpret as code sequence */-	  if (buf[i+1] == '[')-	    {-	      i += 2;-	      left = n-i;-	      if (left <= 0)-		return TRUE;--	      for (j=0;j<G_N_ELEMENTS (xlate_codes);j++)-		{-		  if (iscode (xlate_codes[j].str, &buf[i], left))-		    {-		      /* Ctrl-Alt Return can't be pressed in the XLATE driver,-		       * use Shift F1 instead */-		      if ((xlate_codes[j].code == GDK_F1) &&-			  (xlate_codes[j].modifier & GDK_SHIFT_MASK))-			gdk_fb_redraw_all ();--		      if ((xlate_codes[j].code == GDK_F2) &&-			  (xlate_codes[j].modifier & GDK_SHIFT_MASK))-			{-			  static gint deg = 0;-			  deg = (deg + 1) % 4;-			    -			  gdk_fb_set_rotation (deg);-			}--		      if ((xlate_codes[j].code == GDK_F8) &&-			  (xlate_codes[j].modifier & GDK_SHIFT_MASK))-			exit (1);--		      -		      gdk_fb_handle_key (xlate_codes[j].code,-					 xlate_codes[j].code,-					 xlate_codes[j].modifier,-					 0,-					 NULL,-					 0,-					 FALSE);-		      gdk_fb_handle_key (xlate_codes[j].code,-					 xlate_codes[j].code,-					 xlate_codes[j].modifier,-					 0,-					 NULL,-					 0,-					 TRUE);-		      i += strlen (xlate_codes[j].str);-		      handled = TRUE;-		      break;-		    }-		}-	    }-	  else-	    {-	      /* Alt-key */-	      modifier |= GDK_MOD1_MASK;-	      i++;-	    }-	}-      if (!handled)-	{-	  char dummy[2];-	  gint len;-	  -	  keycode = xlate_chars[buf[i]].code;-	  if (keycode == 0)-	    keycode = buf[i];-	  modifier |= xlate_chars[buf[i]].modifier;-	  -	  dummy[0] = keycode;-	  dummy[1] = 0;--	  len = ((keycode < 255) && isprint (keycode)) ? 1 : 0;-	  gdk_fb_handle_key (keycode,-			     keycode,-			     modifier,-			     0,-			     (len)?g_strdup(dummy) : NULL,-			     len,-			     FALSE);-	  gdk_fb_handle_key (keycode,-			     keycode,-			     modifier,-			     0,-			     (len)?g_strdup(dummy) : NULL,-			     len,-			     TRUE);-	  i++;-	}-    }-  return TRUE;-}--static gboolean-write_string (gint         fd,-	      const gchar *str)-{-  gsize to_write = strlen (str);--  while (to_write > 0)-    {-      gssize count = write (fd, str, to_write);-      if (count < 0)-	{-	  if (errno != EINTR)-	    return FALSE;-	}-      else-	{-	  to_write -= count;-	  str += count;-	}-    }--  return TRUE;-}--static gboolean-xlate_open (GdkFBKeyboard *kb)-{-  const char cursoroff_str[] = "\033[?1;0;0c";-  struct termios ts;-  -  tcgetattr (gdk_display->tty_fd, &ts);-  ts.c_cc[VTIME] = 0;-  ts.c_cc[VMIN] = 1;-  ts.c_lflag &= ~(ICANON|ECHO|ISIG);-  ts.c_iflag = 0;-  tcsetattr (gdk_display->tty_fd, TCSAFLUSH, &ts);--  tcsetpgrp (gdk_display->tty_fd, getpgrp());--  write_string (gdk_display->tty_fd, cursoroff_str);-  -  ioctl (gdk_display->tty_fd, KDSKBMODE, K_XLATE);--  kb->fd = gdk_display->tty_fd;-  kb->io = g_io_channel_unix_new (kb->fd);-  kb->io_tag = g_io_add_watch (kb->io,-			       G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL,-			       xlate_io,-			       kb);-  -  return TRUE;-}--static void-xlate_close (GdkFBKeyboard *kb)-{-  struct termios ts;-  const char cursoron_str[] = "\033c\033[3g\033]R";--  write_string (gdk_display->tty_fd, cursoron_str);--  tcgetattr (gdk_display->tty_fd, &ts);-  ts.c_lflag |= (ICANON|ECHO|ISIG);-  tcsetattr (gdk_display->tty_fd, TCSAFLUSH, &ts);-  -  g_source_remove (kb->io_tag);-  g_io_channel_unref (kb->io);-  kb->fd = -1;-  /* don't close kb->fd, it is the tty from gdk_display */-}- static guint xlate_lookup (GdkFBKeyboard       *kb, 	      const GdkKeymapKey  *key)@@ -1244,179 +965,6 @@   {0, 0, 0}, }; -static gboolean-raw_io (GIOChannel *gioc,-	GIOCondition cond,-	gpointer data)-{-  GdkFBKeyboard *k = data;-  guchar buf[128];-  int i, n;--  n = read (k->fd, buf, sizeof(buf));-  if (n <= 0)-    g_error("Nothing from keyboard!");--  for (i = 0; i < n; i++)-    {-      guchar keycode;-      gboolean key_up;-      char dummy[2];-      int len;-      int mod;-      guint keyval;--      keycode = buf[i] & 0x7F;-      key_up = buf[i] & 0x80;--      if (keycode > G_N_ELEMENTS (trans_table))-	{-	  g_warning ("Unknown keycode");-	  continue;-	}--      if ( (keycode == 0x1D) /* left Ctrl */-	   || (keycode == 0x9D) /* right Ctrl */-	   || (keycode == 0x38) /* left Alt */-	   || (keycode == 0xB8) /* right Alt */-	   || (keycode == 0x2A) /* left Shift */-	   || (keycode == 0x36) /* right Shift */)-	{-	  switch (keycode)-	    {-	    case 0x1D: /* Left Ctrl */-	    case 0x9D: /* Right Ctrl */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -