forked from AuroraMiddleware/gtk
Avoid popping up the completions across the edge of the monitor. Part of
Tue Mar 2 23:08:12 2004 Matthias Clasen <maclas@gmx.de> * gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Avoid popping up the completions across the edge of the monitor. Part of #135561.
This commit is contained in:
parent
ce52e0776e
commit
f2cc9ae8a1
@ -1,3 +1,9 @@
|
|||||||
|
Tue Mar 2 23:08:12 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Avoid
|
||||||
|
popping up the completions across the edge of the monitor.
|
||||||
|
Part of #135561.
|
||||||
|
|
||||||
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Tue Mar 2 23:08:12 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Avoid
|
||||||
|
popping up the completions across the edge of the monitor.
|
||||||
|
Part of #135561.
|
||||||
|
|
||||||
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Tue Mar 2 23:08:12 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Avoid
|
||||||
|
popping up the completions across the edge of the monitor.
|
||||||
|
Part of #135561.
|
||||||
|
|
||||||
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Tue Mar 2 23:08:12 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Avoid
|
||||||
|
popping up the completions across the edge of the monitor.
|
||||||
|
Part of #135561.
|
||||||
|
|
||||||
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
Tue Mar 2 23:08:12 2004 Matthias Clasen <maclas@gmx.de>
|
||||||
|
|
||||||
|
* gtk/gtkentrycompletion.c (_gtk_entry_completion_popup): Avoid
|
||||||
|
popping up the completions across the edge of the monitor.
|
||||||
|
Part of #135561.
|
||||||
|
|
||||||
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
Tue Mar 2 16:47:40 2004 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
* tests/testfilechooser.c (set_filename_existing_nonexistent_cb):
|
||||||
|
@ -1112,6 +1112,10 @@ _gtk_entry_completion_popup (GtkEntryCompletion *completion)
|
|||||||
{
|
{
|
||||||
gint x, y, x_border, y_border;
|
gint x, y, x_border, y_border;
|
||||||
gint height;
|
gint height;
|
||||||
|
GdkScreen *screen;
|
||||||
|
gint monitor_num;
|
||||||
|
GdkRectangle monitor;
|
||||||
|
GtkRequisition popup_req;
|
||||||
|
|
||||||
if (GTK_WIDGET_MAPPED (completion->priv->popup_window))
|
if (GTK_WIDGET_MAPPED (completion->priv->popup_window))
|
||||||
return;
|
return;
|
||||||
@ -1126,7 +1130,24 @@ _gtk_entry_completion_popup (GtkEntryCompletion *completion)
|
|||||||
|
|
||||||
height = _gtk_entry_completion_resize_popup (completion);
|
height = _gtk_entry_completion_resize_popup (completion);
|
||||||
|
|
||||||
gtk_window_move (GTK_WINDOW (completion->priv->popup_window), x, y + height);
|
gtk_widget_size_request (completion->priv->popup_window, &popup_req);
|
||||||
|
|
||||||
|
screen = gtk_widget_get_screen (GTK_WIDGET (completion->priv->entry));
|
||||||
|
monitor_num = gdk_screen_get_monitor_at_window (screen,
|
||||||
|
GTK_WIDGET (completion->priv->entry)->window);
|
||||||
|
gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
|
||||||
|
|
||||||
|
if (x < monitor.x)
|
||||||
|
x = monitor.x;
|
||||||
|
else if (x + popup_req.width > monitor.x + monitor.width)
|
||||||
|
x = monitor.x + monitor.width - popup_req.width;
|
||||||
|
|
||||||
|
if (y + height + popup_req.height <= monitor.y + monitor.height)
|
||||||
|
y += height;
|
||||||
|
else
|
||||||
|
y -= popup_req.height;
|
||||||
|
|
||||||
|
gtk_window_move (GTK_WINDOW (completion->priv->popup_window), x, y);
|
||||||
|
|
||||||
gtk_widget_show (completion->priv->popup_window);
|
gtk_widget_show (completion->priv->popup_window);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user