mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-04-05 22:02:01 -07:00
Fix PGTK scrollbars
* src/gtkutil.c (free_gc_handle_callback): New. (xg_finish_scroll_bar_creation): Use it instead of free_glib_gc_handle. * src/pgtkterm.c (xg_scroll_callback, xg_end_scroll_callback): Adapt to gc_handles.
This commit is contained in:
parent
45d0c389ec
commit
e4f2d89487
2 changed files with 17 additions and 25 deletions
|
|
@ -154,6 +154,13 @@ free_glib_gc_handle (gpointer data, GClosure *closure)
|
|||
free_gc_handle (data);
|
||||
}
|
||||
|
||||
static void
|
||||
free_gc_handle_callback (GtkWidget *widget, gpointer user_data)
|
||||
{
|
||||
gc_handle gch = user_data;
|
||||
free_gc_handle (gch);
|
||||
}
|
||||
|
||||
#ifdef HAVE_GTK3
|
||||
static void
|
||||
emacs_menu_bar_init (EmacsMenuBar *menu_bar)
|
||||
|
|
@ -4597,19 +4604,12 @@ xg_finish_scroll_bar_creation (struct frame *f,
|
|||
#endif
|
||||
|
||||
gc_handle bar_gch = gc_handle_for_pvec (&bar->header);
|
||||
g_signal_connect (G_OBJECT (wscroll),
|
||||
"change-value",
|
||||
scroll_callback,
|
||||
bar_gch);
|
||||
g_signal_connect (G_OBJECT (wscroll),
|
||||
"button-release-event",
|
||||
end_callback,
|
||||
bar_gch);
|
||||
|
||||
g_signal_connect (G_OBJECT (wscroll),
|
||||
"destroy",
|
||||
G_CALLBACK (free_glib_gc_handle),
|
||||
(gpointer) bar_gch);
|
||||
g_signal_connect (G_OBJECT (wscroll), "change-value",
|
||||
scroll_callback, bar_gch);
|
||||
g_signal_connect (G_OBJECT (wscroll), "button-release-event",
|
||||
end_callback, bar_gch);
|
||||
g_signal_connect (G_OBJECT (wscroll), "destroy",
|
||||
G_CALLBACK (free_gc_handle_callback), bar_gch);
|
||||
|
||||
/* The scroll bar widget does not draw on a window of its own. Instead
|
||||
it draws on the parent window, in this case the edit widget. So
|
||||
|
|
|
|||
|
|
@ -3992,12 +3992,8 @@ xg_scroll_callback (GtkRange * range,
|
|||
GtkScrollType scroll, gdouble value, gpointer user_data)
|
||||
{
|
||||
int whole = 0, portion = 0;
|
||||
#ifdef HAVE_MPS
|
||||
struct scroll_bar **bar_cell = user_data;
|
||||
struct scroll_bar *bar = *bar_cell;
|
||||
#else
|
||||
struct scroll_bar *bar = user_data;
|
||||
#endif
|
||||
gc_handle bar_gch = user_data;
|
||||
struct scroll_bar *bar = XSCROLL_BAR (gc_handle_value (bar_gch));
|
||||
enum scroll_bar_part part = scroll_bar_nowhere;
|
||||
GtkAdjustment *adj = GTK_ADJUSTMENT (gtk_range_get_adjustment (range));
|
||||
|
||||
|
|
@ -4063,12 +4059,8 @@ static gboolean
|
|||
xg_end_scroll_callback (GtkWidget *widget,
|
||||
GdkEventButton *event, gpointer user_data)
|
||||
{
|
||||
#ifdef HAVE_MPS
|
||||
struct scroll_bar **bar_cell = user_data;
|
||||
struct scroll_bar *bar = *bar_cell;
|
||||
#else
|
||||
struct scroll_bar *bar = user_data;
|
||||
#endif
|
||||
gc_handle bar_gch = user_data;
|
||||
struct scroll_bar *bar = XSCROLL_BAR (gc_handle_value (bar_gch));
|
||||
bar->dragging = -1;
|
||||
if (WINDOWP (window_being_scrolled))
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue