File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -108,6 +108,14 @@ public class Spice.SlideManager : Object {
108108 }
109109 }
110110
111+ public void previous_slide () {
112+ var previous_slide = get_previous_slide (current_slide);
113+
114+ if (previous_slide != null ) {
115+ current_slide = previous_slide;
116+ }
117+ }
118+
111119 public void next_slide () {
112120 var next_slide = get_next_slide (current_slide);
113121
@@ -147,13 +155,15 @@ public class Spice.SlideManager : Object {
147155
148156 do {
149157 var previous_index = slides. index_of (current) - n++ ;
150- if (previous_index < slides. size) {
158+ if (previous_index >= 0 && previous_index < slides. size) {
151159 var slide = slides. get (previous_index);
152160 if (slide. visible) {
153161 previous_slide = slide;
154162 found = true ;
155163 }
156- } else {
164+ }
165+
166+ if (previous_index < 0 ) {
157167 found = true ;
158168 }
159169 } while (! found);
@@ -174,6 +184,10 @@ public class Spice.SlideManager : Object {
174184 next_slide ();
175185 });
176186
187+ slide. canvas. previous_slide. connect (() = > {
188+ previous_slide ();
189+ });
190+
177191 slides. add (slide);
178192 slideshow. add (slide. canvas);
179193 slideshow. show_all ();
Original file line number Diff line number Diff line change @@ -23,6 +23,7 @@ public class Spice.Canvas : Gtk.Overlay {
2323 public signal void item_clicked (CanvasItem ? item );
2424 public signal void ratio_changed (double ratio );
2525 public signal void next_slide ();
26+ public signal void previous_slide ();
2627
2728 public signal void configuration_changed ();
2829 public double current_ratio = 1.0f ;
@@ -216,10 +217,15 @@ public class Spice.Canvas : Gtk.Overlay {
216217 }
217218
218219 public override bool button_press_event (Gdk .EventButton event ) {
220+ stderr. printf (" Button %u\n " , event. button);
219221 if (! editable) return false ;
220222
221223 if (window. is_fullscreen) {
222- next_slide ();
224+ if (event. button == 1 ) {
225+ next_slide ();
226+ } else if (event. button == 3 ) {
227+ previous_slide ();
228+ }
223229 } else {
224230 unselect_all ();
225231 item_clicked (null );
@@ -299,16 +305,7 @@ public class Spice.Canvas : Gtk.Overlay {
299305 }
300306
301307 public override bool button_press_event (Gdk .EventButton event ) {
302- if (! canvas. editable) return false ;
303-
304- if (window. is_fullscreen) {
305- canvas. next_slide ();
306- } else {
307- canvas. item_clicked (null );
308- canvas. unselect_all ();
309- }
310-
311- return true ;
308+ return canvas. button_press_event (event);
312309 }
313310
314311 public new void style (string pattern ) {
You can’t perform that action at this time.
0 commit comments