X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libview%2Fev-annotation-window.c;h=abbff69b36d8c06bf13ae77115f4890fcb6da5d4;hb=1d0de30170119eade2a7305ffa8ec6d9a3e4af32;hp=1991168df35ba424b1cf932c1833e2f73971a373;hpb=229170c1870cdc32fdd7dcf28136f437dc4cbab2;p=evince.git diff --git a/libview/ev-annotation-window.c b/libview/ev-annotation-window.c index 1991168d..abbff69b 100644 --- a/libview/ev-annotation-window.c +++ b/libview/ev-annotation-window.c @@ -16,7 +16,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "config.h" @@ -26,6 +26,7 @@ #include "ev-annotation-window.h" #include "ev-stock-icons.h" #include "ev-view-marshal.h" +#include "ev-document-misc.h" enum { PROP_0, @@ -83,37 +84,24 @@ send_focus_change (GtkWidget *widget, { GdkEvent *fevent = gdk_event_new (GDK_FOCUS_CHANGE); - g_object_ref (widget); - - if (in) - GTK_WIDGET_SET_FLAGS (widget, GTK_HAS_FOCUS); - else - GTK_WIDGET_UNSET_FLAGS (widget, GTK_HAS_FOCUS); - fevent->focus_change.type = GDK_FOCUS_CHANGE; - fevent->focus_change.window = g_object_ref (widget->window); + fevent->focus_change.window = gtk_widget_get_window (widget); fevent->focus_change.in = in; + if (fevent->focus_change.window) + g_object_ref (fevent->focus_change.window); - gtk_widget_event (widget, fevent); - - g_object_notify (G_OBJECT (widget), "has-focus"); + gtk_widget_send_focus_change (widget, fevent); - g_object_unref (widget); gdk_event_free (fevent); } static gdouble -get_screen_dpi (GtkWindow *window) +get_screen_dpi (EvAnnotationWindow *window) { GdkScreen *screen; - gdouble xdpi, ydpi; - screen = gtk_window_get_screen (window); - - xdpi = 25.4 * gdk_screen_get_width (screen) / gdk_screen_get_width_mm (screen); - ydpi = 25.4 * gdk_screen_get_height (screen) / gdk_screen_get_height_mm (screen); - - return (xdpi + ydpi) / 2.0; + screen = gtk_window_get_screen (GTK_WINDOW (window)); + return ev_document_misc_get_screen_dpi (screen); } static GtkIconSize @@ -250,10 +238,12 @@ static void ev_annotation_window_set_resize_cursor (GtkWidget *widget, EvAnnotationWindow *window) { - if (!widget->window) + GdkWindow *gdk_window = gtk_widget_get_window (widget); + + if (!gdk_window) return; - if (GTK_WIDGET_IS_SENSITIVE (widget)) { + if (gtk_widget_is_sensitive (widget)) { GdkDisplay *display = gtk_widget_get_display (widget); GdkCursor *cursor; @@ -261,10 +251,10 @@ ev_annotation_window_set_resize_cursor (GtkWidget *widget, widget == window->resize_sw ? GDK_BOTTOM_LEFT_CORNER : GDK_BOTTOM_RIGHT_CORNER); - gdk_window_set_cursor (widget->window, cursor); + gdk_window_set_cursor (gdk_window, cursor); gdk_cursor_unref (cursor); } else { - gdk_window_set_cursor (widget->window, NULL); + gdk_window_set_cursor (gdk_window, NULL); } } @@ -292,7 +282,7 @@ ev_annotation_window_init (EvAnnotationWindow *window) GtkWidget *icon; GtkWidget *swindow; - GTK_WIDGET_SET_FLAGS (window, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (GTK_WIDGET (window), TRUE); vbox = gtk_vbox_new (FALSE, 0); @@ -385,7 +375,7 @@ ev_annotation_window_init (EvAnnotationWindow *window) gtk_container_set_border_width (GTK_CONTAINER (window), 2); - gtk_window_set_accept_focus (GTK_WINDOW (window), FALSE); + gtk_window_set_accept_focus (GTK_WINDOW (window), TRUE); gtk_window_set_decorated (GTK_WINDOW (window), FALSE); gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE); gtk_window_set_skip_pager_hint (GTK_WINDOW (window), TRUE); @@ -423,7 +413,7 @@ ev_annotation_window_constructor (GType type, rect = window->rect; /* Rectangle is at doc resolution (72.0) */ - scale = get_screen_dpi (GTK_WINDOW (window)) / 72.0; + scale = get_screen_dpi (window) / 72.0; gtk_window_resize (GTK_WINDOW (window), (gint)((rect->x2 - rect->x1) * scale), (gint)((rect->y2 - rect->y1) * scale)); @@ -631,7 +621,7 @@ ev_annotation_window_grab_focus (EvAnnotationWindow *window) { g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); - if (!GTK_WIDGET_HAS_FOCUS (window->text_view)) { + if (!gtk_widget_has_focus (window->text_view)) { gtk_widget_grab_focus (GTK_WIDGET (window)); send_focus_change (window->text_view, TRUE); } @@ -642,7 +632,7 @@ ev_annotation_window_ungrab_focus (EvAnnotationWindow *window) { g_return_if_fail (EV_IS_ANNOTATION_WINDOW (window)); - if (GTK_WIDGET_HAS_FOCUS (window->text_view)) { + if (gtk_widget_has_focus (window->text_view)) { send_focus_change (window->text_view, FALSE); }