Skip to content

Commit dc1432d

Browse files
William Jon McCannraveit65
William Jon McCann
authored and
raveit65
committed
1 parent bc7af60 commit dc1432d

File tree

2 files changed

+55
-27
lines changed

2 files changed

+55
-27
lines changed

libview/ev-view.c

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -104,15 +104,15 @@ typedef struct {
104104

105105
#define SCROLL_TIME 150
106106

107+
#define EV_STYLE_CLASS_DOCUMENT_PAGE "document-page"
108+
107109
/*** Scrolling ***/
108110
static void view_update_range_and_current_page (EvView *view);
109111
static void ensure_rectangle_is_visible (EvView *view,
110112
GdkRectangle *rect);
111113

112114
/*** Geometry computations ***/
113115
static void compute_border (EvView *view,
114-
int width,
115-
int height,
116116
GtkBorder *border);
117117
static void get_page_y_offset (EvView *view,
118118
int page,
@@ -1083,9 +1083,16 @@ ensure_rectangle_is_visible (EvView *view, GdkRectangle *rect)
10831083
/*** Geometry computations ***/
10841084

10851085
static void
1086-
compute_border (EvView *view, int width, int height, GtkBorder *border)
1086+
compute_border (EvView *view, GtkBorder *border)
10871087
{
1088-
ev_document_misc_get_page_border_size (width, height, border);
1088+
GtkWidget *widget = GTK_WIDGET (view);
1089+
GtkStyleContext *context = gtk_widget_get_style_context (widget);
1090+
GtkStateFlags state = gtk_widget_get_state_flags (widget);
1091+
1092+
gtk_style_context_save (context);
1093+
gtk_style_context_add_class (context, EV_STYLE_CLASS_DOCUMENT_PAGE);
1094+
gtk_style_context_get_border (context, state, border);
1095+
gtk_style_context_restore (context);
10891096
}
10901097

10911098
void
@@ -1146,14 +1153,13 @@ ev_view_get_max_page_size (EvView *view,
11461153
static void
11471154
get_page_y_offset (EvView *view, int page, int *y_offset)
11481155
{
1149-
int max_width, offset = 0;
1156+
int offset = 0;
11501157
GtkBorder border;
11511158
gboolean odd_left;
11521159

11531160
g_return_if_fail (y_offset != NULL);
11541161

1155-
ev_view_get_max_page_size (view, &max_width, NULL);
1156-
compute_border (view, max_width, max_width, &border);
1162+
compute_border (view, &border);
11571163

11581164
if (is_dual_page (view, &odd_left)) {
11591165
ev_view_get_height_to_page (view, page, NULL, &offset);
@@ -1183,7 +1189,7 @@ ev_view_get_page_extents (EvView *view,
11831189

11841190
/* Get the size of the page */
11851191
ev_view_get_page_size (view, page, &width, &height);
1186-
compute_border (view, width, height, border);
1192+
compute_border (view, border);
11871193
page_area->width = width + border->left + border->right;
11881194
page_area->height = height + border->top + border->bottom;
11891195

@@ -1232,7 +1238,7 @@ ev_view_get_page_extents (EvView *view,
12321238
if (height_2 > height)
12331239
max_height = height_2;
12341240
}
1235-
compute_border (view, max_width, max_height, &overall_border);
1241+
compute_border (view, &overall_border);
12361242

12371243
/* Find the offsets */
12381244
x = view->spacing;
@@ -3533,7 +3539,7 @@ ev_view_size_request_continuous_dual_page (EvView *view,
35333539
GtkBorder border;
35343540

35353541
ev_view_get_max_page_size (view, &max_width, NULL);
3536-
compute_border (view, max_width, max_width, &border);
3542+
compute_border (view, &border);
35373543
requisition->width = (max_width + border.left + border.right) * 2 + (view->spacing * 3);
35383544
}
35393545
break;
@@ -3563,7 +3569,7 @@ ev_view_size_request_continuous (EvView *view,
35633569
GtkBorder border;
35643570

35653571
ev_view_get_max_page_size (view, &max_width, NULL);
3566-
compute_border (view, max_width, max_width, &border);
3572+
compute_border (view, &border);
35673573
requisition->width = max_width + (view->spacing * 2) + border.left + border.right;
35683574
}
35693575
break;
@@ -3600,7 +3606,7 @@ ev_view_size_request_dual_page (EvView *view,
36003606
height = height_2;
36013607
}
36023608
}
3603-
compute_border (view, width, height, &border);
3609+
compute_border (view, &border);
36043610

36053611
requisition->width = view->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 :
36063612
((width + border.left + border.right) * 2) + (view->spacing * 3);
@@ -3622,7 +3628,7 @@ ev_view_size_request_single_page (EvView *view,
36223628
}
36233629

36243630
ev_view_get_page_size (view, view->current_page, &width, &height);
3625-
compute_border (view, width, height, &border);
3631+
compute_border (view, &border);
36263632

36273633
requisition->width = view->sizing_mode == EV_SIZING_FIT_WIDTH ? 1 :
36283634
width + border.left + border.right + (2 * view->spacing);
@@ -5771,10 +5777,10 @@ draw_one_page (EvView *view,
57715777
GdkRectangle *expose_area,
57725778
gboolean *page_ready)
57735779
{
5774-
GdkRectangle overlap;
5775-
GdkRectangle real_page_area;
5776-
gint current_page;
5777-
gboolean inverted_colors;
5780+
GtkStyleContext *context;
5781+
GdkRectangle overlap;
5782+
GdkRectangle real_page_area;
5783+
gint current_page;
57785784

57795785
g_assert (view->document);
57805786

@@ -5790,13 +5796,17 @@ draw_one_page (EvView *view,
57905796
real_page_area.height -= (border->top + border->bottom);
57915797
*page_ready = TRUE;
57925798

5799+
context = gtk_widget_get_style_context (GTK_WIDGET (view));
57935800
current_page = ev_document_model_get_page (view->model);
5794-
inverted_colors = ev_document_model_get_inverted_colors (view->model);
5795-
ev_document_misc_paint_one_page (cr,
5796-
GTK_WIDGET (view),
5797-
page_area, border,
5798-
page == current_page,
5799-
inverted_colors);
5801+
5802+
gtk_style_context_save (context);
5803+
gtk_style_context_add_class (context, EV_STYLE_CLASS_DOCUMENT_PAGE);
5804+
5805+
if (view->continuous && page == current_page)
5806+
gtk_style_context_set_state (context, GTK_STATE_FLAG_ACTIVE);
5807+
5808+
gtk_render_frame (context, cr, page_area->x, page_area->y, page_area->width, page_area->height);
5809+
gtk_style_context_restore (context);
58005810

58015811
if (gdk_rectangle_intersect (&real_page_area, expose_area, &overlap)) {
58025812
gint width, height;
@@ -7130,7 +7140,7 @@ ev_view_zoom_for_size_continuous_and_dual_page (EvView *view,
71307140
doc_height = tmp;
71317141
}
71327142

7133-
compute_border (view, doc_width, doc_height, &border);
7143+
compute_border (view, &border);
71347144

71357145
doc_width *= 2;
71367146
width -= (2 * (border.left + border.right) + 3 * view->spacing);
@@ -7175,7 +7185,7 @@ ev_view_zoom_for_size_continuous (EvView *view,
71757185
doc_height = tmp;
71767186
}
71777187

7178-
compute_border (view, doc_width, doc_height, &border);
7188+
compute_border (view, &border);
71797189

71807190
width -= (border.left + border.right + 2 * view->spacing);
71817191
height -= (border.top + border.bottom + 2 * view->spacing - 1);
@@ -7224,7 +7234,7 @@ ev_view_zoom_for_size_dual_page (EvView *view,
72247234
if (height_2 > doc_height)
72257235
doc_height = height_2;
72267236
}
7227-
compute_border (view, width, height, &border);
7237+
compute_border (view, &border);
72287238

72297239
doc_width = doc_width * 2;
72307240
width -= ((border.left + border.right)* 2 + 3 * view->spacing);
@@ -7263,7 +7273,7 @@ ev_view_zoom_for_size_single_page (EvView *view,
72637273
get_doc_page_size (view, view->current_page, &doc_width, &doc_height);
72647274

72657275
/* Get an approximate border */
7266-
compute_border (view, width, height, &border);
7276+
compute_border (view, &border);
72677277

72687278
width -= (border.left + border.right + 2 * view->spacing);
72697279
height -= (border.top + border.bottom + 2 * view->spacing);

shell/atril.css

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,24 @@
99
padding: 8px;
1010
}
1111

12+
evview.document-page {
13+
border-color: black;
14+
border-style: solid;
15+
border-width: 1px;
16+
border-radius: 0px;
17+
border-image: none;
18+
padding: 0;
19+
}
20+
21+
evview.document-page:active {
22+
border-color: @theme_selected_bg_color;
23+
border-style: solid;
24+
border-width: 1px;
25+
border-radius: 0px;
26+
border-image: none;
27+
padding: 0;
28+
}
29+
1230
evpresentationview {
1331
background-color: black;
1432
}

0 commit comments

Comments
 (0)