Commit 5102e76f authored by Owen Taylor's avatar Owen Taylor Committed by Owen Taylor

Patch from Eric Warmenhoven to with miscellaneous linux-fb fixes,

Sun Sep 22 18:22:37 2002  Owen Taylor  <otaylor@redhat.com>

        * gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
        gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
        Patch from Eric Warmenhoven to with miscellaneous linux-fb
        fixes, including a fix for a crash in
        gdk_keymap_get_entries_for_keycode (#87420)
parent 083c3aef
Sun Sep 22 18:22:37 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
Patch from Eric Warmenhoven to with miscellaneous linux-fb
fixes, including a fix for a crash in
gdk_keymap_get_entries_for_keycode (#87420)
2002-09-22 Matthias Clasen <maclas@gmx.de>
* gdk/gdkdraw.c (gdk_drawable_get_type):
......@@ -204,7 +212,7 @@ Tue Sep 10 09:47:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
Tue Sep 10 11:11:09 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/*: Patch from Eric Warmonhoven to
* gdk/linux-fb/*: Patch from Eric Warmenhoven to
get linux-fb compiling with multihead changes.
Tue Sep 10 09:29:00 2002 Owen Taylor <otaylor@redhat.com>
......
Sun Sep 22 18:22:37 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
Patch from Eric Warmenhoven to with miscellaneous linux-fb
fixes, including a fix for a crash in
gdk_keymap_get_entries_for_keycode (#87420)
2002-09-22 Matthias Clasen <maclas@gmx.de>
* gdk/gdkdraw.c (gdk_drawable_get_type):
......@@ -204,7 +212,7 @@ Tue Sep 10 09:47:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
Tue Sep 10 11:11:09 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/*: Patch from Eric Warmonhoven to
* gdk/linux-fb/*: Patch from Eric Warmenhoven to
get linux-fb compiling with multihead changes.
Tue Sep 10 09:29:00 2002 Owen Taylor <otaylor@redhat.com>
......
Sun Sep 22 18:22:37 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
Patch from Eric Warmenhoven to with miscellaneous linux-fb
fixes, including a fix for a crash in
gdk_keymap_get_entries_for_keycode (#87420)
2002-09-22 Matthias Clasen <maclas@gmx.de>
* gdk/gdkdraw.c (gdk_drawable_get_type):
......@@ -204,7 +212,7 @@ Tue Sep 10 09:47:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
Tue Sep 10 11:11:09 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/*: Patch from Eric Warmonhoven to
* gdk/linux-fb/*: Patch from Eric Warmenhoven to
get linux-fb compiling with multihead changes.
Tue Sep 10 09:29:00 2002 Owen Taylor <otaylor@redhat.com>
......
Sun Sep 22 18:22:37 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
Patch from Eric Warmenhoven to with miscellaneous linux-fb
fixes, including a fix for a crash in
gdk_keymap_get_entries_for_keycode (#87420)
2002-09-22 Matthias Clasen <maclas@gmx.de>
* gdk/gdkdraw.c (gdk_drawable_get_type):
......@@ -204,7 +212,7 @@ Tue Sep 10 09:47:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
Tue Sep 10 11:11:09 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/*: Patch from Eric Warmonhoven to
* gdk/linux-fb/*: Patch from Eric Warmenhoven to
get linux-fb compiling with multihead changes.
Tue Sep 10 09:29:00 2002 Owen Taylor <otaylor@redhat.com>
......
Sun Sep 22 18:22:37 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
Patch from Eric Warmenhoven to with miscellaneous linux-fb
fixes, including a fix for a crash in
gdk_keymap_get_entries_for_keycode (#87420)
2002-09-22 Matthias Clasen <maclas@gmx.de>
* gdk/gdkdraw.c (gdk_drawable_get_type):
......@@ -204,7 +212,7 @@ Tue Sep 10 09:47:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
Tue Sep 10 11:11:09 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/*: Patch from Eric Warmonhoven to
* gdk/linux-fb/*: Patch from Eric Warmenhoven to
get linux-fb compiling with multihead changes.
Tue Sep 10 09:29:00 2002 Owen Taylor <otaylor@redhat.com>
......
Sun Sep 22 18:22:37 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/{gdkinput.c,gdkkeyboard-fb.c,gdk/linux-fb/gdkmain-fb.c,
gdk/linux-fb/gdkprivate-fb.h, gdk/linux-fb/gdkwindow-fb.c}:
Patch from Eric Warmenhoven to with miscellaneous linux-fb
fixes, including a fix for a crash in
gdk_keymap_get_entries_for_keycode (#87420)
2002-09-22 Matthias Clasen <maclas@gmx.de>
* gdk/gdkdraw.c (gdk_drawable_get_type):
......@@ -204,7 +212,7 @@ Tue Sep 10 09:47:52 2002 HideToshi Tajima <hidetoshi.tajima@sun.com>
Tue Sep 10 11:11:09 2002 Owen Taylor <otaylor@redhat.com>
* gdk/linux-fb/*: Patch from Eric Warmonhoven to
* gdk/linux-fb/*: Patch from Eric Warmenhoven to
get linux-fb compiling with multihead changes.
Tue Sep 10 09:29:00 2002 Owen Taylor <otaylor@redhat.com>
......
......@@ -8,6 +8,7 @@ _libs
libgdk-*.la
gdkcursors.h
gdkenumtypes.[ch]
gdkmarshalers.h
libgdk.la
gdkconfig.h
stamp-gc-h
......
......@@ -60,6 +60,8 @@ _gdk_init_input_core (void)
_gdk_core_pointer->axes = gdk_input_core_axes;
_gdk_core_pointer->num_keys = 0;
_gdk_core_pointer->keys = NULL;
_gdk_display->core_pointer = _gdk_core_pointer;
}
static void
......@@ -323,6 +325,7 @@ _gdk_input_window_destroy (GdkWindow *window)
void
_gdk_input_init (void)
{
_gdk_init_input_core ();
_gdk_input_devices = g_list_append (NULL, _gdk_core_pointer);
_gdk_input_ignore_core = FALSE;
}
......
......@@ -935,7 +935,7 @@ static void
xlate_close (GdkFBKeyboard *kb)
{
struct termios ts;
const char cursoron_str[] = "\033c";
const char cursoron_str[] = "\033c\033[3g\033]R";
write_string (gdk_display->tty_fd, cursoron_str);
......@@ -953,8 +953,11 @@ static guint
xlate_lookup (GdkFBKeyboard *kb,
const GdkKeymapKey *key)
{
g_warning ("xlate_lookup() NIY");
return FALSE;
if (key->group != 0)
return 0;
if (key->level != 0)
return 0;
return key->keycode;
}
static gboolean
......@@ -967,8 +970,15 @@ xlate_translate (GdkFBKeyboard *kb,
gint *level,
GdkModifierType *consumed_modifiers)
{
g_warning ("xlate_translate() NIY");
return FALSE;
if (keyval)
*keyval = hardware_keycode;
if (effective_group)
*effective_group = 0;
if (level)
*level = 0;
if (consumed_modifiers)
*consumed_modifiers = 0;
return TRUE;
}
static gboolean
......@@ -977,10 +987,12 @@ xlate_get_for_keyval (GdkFBKeyboard *kb,
GdkKeymapKey **keys,
gint *n_keys)
{
g_warning ("xlate_get_for_keyval() NIY");
if (keys) *keys=NULL;
if (n_keys) *n_keys=0;
return FALSE;
*n_keys = 1;
*keys = g_new (GdkKeymapKey, 1);
(*keys)->keycode = keyval;
(*keys)->group = 0;
(*keys)->level = 0;
return TRUE;
}
static gboolean
......@@ -990,10 +1002,22 @@ xlate_get_for_keycode (GdkFBKeyboard *kb,
guint **keyvals,
gint *n_entries)
{
g_warning ("xlate_get_for_keycode() NIY");
if (keys) *keys=NULL;
if (n_entries) *n_entries=0;
return FALSE;
if (keys)
{
*keys = g_new (GdkKeymapKey, 1);
(*keys)->keycode = hardware_keycode;
(*keys)->level = 0;
(*keys)->group = 0;
}
if (keyvals)
{
*keyvals = g_new (guint, 1);
**keyvals = hardware_keycode;
}
if (n_entries)
*n_entries = 1;
return TRUE;
}
/* Raw keyboard support */
......
......@@ -118,7 +118,8 @@ enum {
FB_VSYNC,
FB_CSYNC,
FB_EXTSYNC,
FB_DOUBLE
FB_DOUBLE,
FB_ACCEL
};
char *fb_modes_keywords[] =
......@@ -132,7 +133,8 @@ char *fb_modes_keywords[] =
"vsync",
"csync",
"extsync",
"double"
"double",
"accel"
};
static int
......@@ -146,7 +148,7 @@ fb_modes_parse_mode (GScanner *scanner,
char *modename;
int geometry[5];
int timings[7];
int vsync=0, hsync=0, csync=0, extsync=0, doublescan=0, laced=0;
int vsync=0, hsync=0, csync=0, extsync=0, doublescan=0, laced=0, accel=1;
int found_geometry = 0;
int found_timings = 0;
......@@ -302,6 +304,23 @@ fb_modes_parse_mode (GScanner *scanner,
return -1;
}
break;
case FB_ACCEL:
token = g_scanner_get_next_token (scanner);
if (token != G_TOKEN_IDENTIFIER)
{
g_free (modename);
return -1;
}
if (g_strcasecmp (scanner->value.v_identifier, "false")==0)
accel = 0;
else if (g_strcasecmp (scanner->value.v_identifier, "true")==0)
accel = 1;
else
{
g_free (modename);
return -1;
}
break;
}
token = g_scanner_get_next_token (scanner);
......@@ -350,6 +369,10 @@ fb_modes_parse_mode (GScanner *scanner,
modeinfo->sync |= FB_SYNC_HOR_HIGH_ACT;
if (vsync)
modeinfo->sync |= FB_SYNC_VERT_HIGH_ACT;
if (accel)
modeinfo->accel_flags = FB_ACCELF_TEXT;
else
modeinfo->accel_flags = 0;
}
g_free (modename);
......@@ -834,6 +857,12 @@ _gdk_windowing_init (int *argc, char ***argv)
return;
}
/* Although atexit is evil, we need it here because otherwise the
* keyboard is left in a bad state. you can still run 'reset' but
* that gets annoying after running testgtk for the 20th time.
*/
g_atexit(_gdk_windowing_exit);
gdk_initialized = TRUE;
_gdk_selection_property = gdk_atom_intern ("GDK_SELECTION", FALSE);
......
......@@ -458,4 +458,12 @@ void gdk_fb_mouse_get_info (gint *x,
gint *y,
GdkModifierType *mask);
/* Initialization */
void _gdk_windowing_window_init (void);
void _gdk_visual_init (void);
void _gdk_dnd_init (void);
void _gdk_windowing_image_init (void);
void _gdk_events_init (void);
void _gdk_input_init (void);
#endif /* __GDK_PRIVATE_FB_H__ */
......@@ -1958,7 +1958,9 @@ gdk_window_shape_combine_mask (GdkWindow *window,
_gdk_window_shape_combine_region (window,
(mask == GDK_FB_USE_CHILD_SHAPE)?
GDK_FB_USE_CHILD_SHAPE :
gdk_fb_region_create_from_bitmap (mask),
mask ?
gdk_fb_region_create_from_bitmap (mask) :
NULL,
x, y);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment