summaryrefslogtreecommitdiff
path: root/fontforge
diff options
context:
space:
mode:
authorpfaedit <pfaedit>2011-02-10 21:16:05 +0000
committerpfaedit <pfaedit>2011-02-10 21:16:05 +0000
commit5420de03864eb252fde21c276a3ac831a776ef70 (patch)
tree4d2c51090f46f922794c7ed18454b9c9773d2c42 /fontforge
parent8163e4b2a1c5111a0832f09ab69cfd8c4b17c03f (diff)
An earlier patch added support for horizontal scrolling (shift trackwheel) in the outline glyph window. This builds on that and supports it in (I hope) all windows. Also adds support for apple's wheel which can do both horizontal and vertical motion.
Diffstat (limited to 'fontforge')
-rw-r--r--fontforge/bitmapview.c15
-rw-r--r--fontforge/charview.c13
-rw-r--r--fontforge/cvexportdlg.c2
-rw-r--r--fontforge/cvimportdlg.c2
-rw-r--r--fontforge/fontinfo.c2
-rw-r--r--fontforge/fontview.c6
-rw-r--r--fontforge/groupsdlg.c4
-rw-r--r--fontforge/kernclass.c2
-rw-r--r--fontforge/lookupui.c2
-rw-r--r--fontforge/metricsview.c36
-rw-r--r--fontforge/openfontdlg.c2
-rw-r--r--fontforge/problems.c4
-rw-r--r--fontforge/savefontdlg.c2
-rw-r--r--fontforge/sftextfield.c11
-rw-r--r--fontforge/showatt.c4
-rw-r--r--fontforge/stamp.c6
-rw-r--r--fontforge/statemachine.c2
-rw-r--r--fontforge/uiutil.c4
18 files changed, 83 insertions, 36 deletions
diff --git a/fontforge/bitmapview.c b/fontforge/bitmapview.c
index 52f993d6..c3ea5b81 100644
--- a/fontforge/bitmapview.c
+++ b/fontforge/bitmapview.c
@@ -1378,8 +1378,12 @@ static int v_e_h(GWindow gw, GEvent *event) {
BitmapView *bv = (BitmapView *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
- if ( !(event->u.mouse.state&(ksm_shift|ksm_control)) ) /* bind shift to magnify/minify */
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
+ int ish = event->u.mouse.button>5;
+ if ( event->u.mouse.state&ksm_shift ) ish = !ish;
+ if ( ish ) /* bind shift to vertical scrolling */
+return( GGadgetDispatchEvent(bv->hsb,event));
+ else
return( GGadgetDispatchEvent(bv->vsb,event));
}
@@ -1434,7 +1438,12 @@ static int bv_e_h(GWindow gw, GEvent *event) {
int enc;
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
+ int ish = event->u.mouse.button>5;
+ if ( event->u.mouse.state&ksm_shift ) ish = !ish;
+ if ( ish ) /* bind shift to vertical scrolling */
+return( GGadgetDispatchEvent(bv->hsb,event));
+ else
return( GGadgetDispatchEvent(bv->vsb,event));
}
diff --git a/fontforge/charview.c b/fontforge/charview.c
index 033080e1..d7da988c 100644
--- a/fontforge/charview.c
+++ b/fontforge/charview.c
@@ -4336,10 +4336,12 @@ static int v_e_h(GWindow gw, GEvent *event) {
GGadgetPopupExternalEvent(event);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7 ) ) {
if ( !(event->u.mouse.state&(ksm_control)) ) /* bind control to magnify/minify */
{
- if (event->u.mouse.state&(ksm_shift) ) /* bind shift to vertical scrolling */
+ int ish = event->u.mouse.button>5;
+ if ( event->u.mouse.state&ksm_shift ) ish = !ish;
+ if ( ish ) /* bind shift to vertical scrolling */
return( GGadgetDispatchEvent(cv->hsb,event));
else
return( GGadgetDispatchEvent(cv->vsb,event));
@@ -4823,7 +4825,12 @@ static int cv_e_h(GWindow gw, GEvent *event) {
CharView *cv = (CharView *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
+ int ish = event->u.mouse.button>5;
+ if ( event->u.mouse.state&ksm_shift ) ish = !ish;
+ if ( ish ) /* bind shift to vertical scrolling */
+return( GGadgetDispatchEvent(cv->hsb,event));
+ else
return( GGadgetDispatchEvent(cv->vsb,event));
}
diff --git a/fontforge/cvexportdlg.c b/fontforge/cvexportdlg.c
index 4c708aa6..29f89e86 100644
--- a/fontforge/cvexportdlg.c
+++ b/fontforge/cvexportdlg.c
@@ -431,7 +431,7 @@ return( false );
struct gfc_data *d = GDrawGetUserData(gw);
GFileChooserPopupCheck(d->gfc,event);
} else if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
struct gfc_data *d = GDrawGetUserData(gw);
return( GGadgetDispatchEvent((GGadget *) (d->gfc),event));
}
diff --git a/fontforge/cvimportdlg.c b/fontforge/cvimportdlg.c
index 47b975f9..ecb6dd6a 100644
--- a/fontforge/cvimportdlg.c
+++ b/fontforge/cvimportdlg.c
@@ -603,7 +603,7 @@ return( false );
struct gfc_data *d = GDrawGetUserData(gw);
GFileChooserPopupCheck(d->gfc,event);
} else if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
struct gfc_data *d = GDrawGetUserData(gw);
return( GGadgetDispatchEvent((GGadget *) (d->gfc),event));
}
diff --git a/fontforge/fontinfo.c b/fontforge/fontinfo.c
index 3851498e..2fc58500 100644
--- a/fontforge/fontinfo.c
+++ b/fontforge/fontinfo.c
@@ -7497,7 +7497,7 @@ static int lookups_e_h(GWindow gw, GEvent *event, int isgpos) {
struct gfi_data *gfi = GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(GWidgetGetControl(gw,CID_LookupVSB+isgpos),event));
}
diff --git a/fontforge/fontview.c b/fontforge/fontview.c
index bd684a60..1bbf60ef 100644
--- a/fontforge/fontview.c
+++ b/fontforge/fontview.c
@@ -6946,7 +6946,7 @@ static int v_e_h(GWindow gw, GEvent *event) {
FontView *fv = (FontView *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(fv->vsb,event));
}
@@ -7066,7 +7066,7 @@ static int fv_e_h(GWindow gw, GEvent *event) {
FontView *fv = (FontView *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(fv->vsb,event));
}
@@ -7739,7 +7739,7 @@ return( true );
gs = (struct gsd *) (active_fv->b.container);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(active_fv->vsb,event));
}
diff --git a/fontforge/groupsdlg.c b/fontforge/groupsdlg.c
index 70ae5ae4..781de675 100644
--- a/fontforge/groupsdlg.c
+++ b/fontforge/groupsdlg.c
@@ -524,7 +524,7 @@ static int grpv_e_h(GWindow gw, GEvent *event) {
struct groupdlg *grp = (struct groupdlg *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(grp->vsb,event));
}
@@ -1083,7 +1083,7 @@ static int displaygrp_e_h(GWindow gw, GEvent *event) {
struct groupdlg *grp = (struct groupdlg *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(grp->vsb,event));
}
diff --git a/fontforge/kernclass.c b/fontforge/kernclass.c
index a57b9883..4e46c8d8 100644
--- a/fontforge/kernclass.c
+++ b/fontforge/kernclass.c
@@ -1368,7 +1368,7 @@ static void KCD_Mouse(KernClassDlg *kcd,GEvent *event) {
GGadgetEndPopup();
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
GGadgetDispatchEvent(kcd->vsb,event);
return;
}
diff --git a/fontforge/lookupui.c b/fontforge/lookupui.c
index f5ee53c0..43452dc5 100644
--- a/fontforge/lookupui.c
+++ b/fontforge/lookupui.c
@@ -4973,7 +4973,7 @@ return( true );
kf = (struct kf_dlg *) (active_fv->b.container);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(active_fv->vsb,event));
}
diff --git a/fontforge/metricsview.c b/fontforge/metricsview.c
index dcce7912..31a249ff 100644
--- a/fontforge/metricsview.c
+++ b/fontforge/metricsview.c
@@ -4350,14 +4350,20 @@ static int mv_v_e_h(GWindow gw, GEvent *event) {
break;
case et_mouseup: case et_mousemove: case et_mousedown:
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
- if ( !(event->u.mouse.state&(ksm_shift|ksm_control)) ) /* bind shift to magnify/minify */
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
+ int ish = event->u.mouse.button>5;
+ if ( event->u.mouse.state&ksm_shift ) ish = !ish;
+ if ( event->u.mouse.state&ksm_control ) { /* bind control to magnify/minify */
+ if ( event->type==et_mousedown ) {
+ if ( event->u.mouse.button==4 || event->u.mouse.button==6 )
+ _MVMenuScale(mv,MID_ZoomIn);
+ else
+ _MVMenuScale(mv,MID_ZoomOut);
+ }
+ } else if ( ish ) { /* bind shift to horizontal scroll */
+return( GGadgetDispatchEvent(mv->hsb,event));
+ } else {
return( GGadgetDispatchEvent(mv->vsb,event));
- if ( event->type==et_mousedown ) {
- if ( event->u.mouse.button==4 )
- _MVMenuScale(mv,MID_ZoomIn);
- else if ( event->u.mouse.button==5 )
- _MVMenuScale(mv,MID_ZoomOut);
}
return( true );
}
@@ -4393,8 +4399,22 @@ static int mv_e_h(GWindow gw, GEvent *event) {
break;
case et_mouseup: case et_mousemove: case et_mousedown:
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
+ int ish = event->u.mouse.button>5;
+ if ( event->u.mouse.state&ksm_shift ) ish = !ish;
+ if ( event->u.mouse.state&ksm_control ) { /* bind control to magnify/minify */
+ if ( event->type==et_mousedown ) {
+ if ( event->u.mouse.button==4 || event->u.mouse.button==6 )
+ _MVMenuScale(mv,MID_ZoomIn);
+ else
+ _MVMenuScale(mv,MID_ZoomOut);
+ }
+ } else if ( ish ) { /* bind shift to horizontal scroll */
+return( GGadgetDispatchEvent(mv->hsb,event));
+ } else {
return( GGadgetDispatchEvent(mv->vsb,event));
+ }
+return( true );
}
if ( mv->gwgic!=NULL && event->type==et_mousedown)
GDrawSetGIC(mv->gw,mv->gwgic,0,20);
diff --git a/fontforge/openfontdlg.c b/fontforge/openfontdlg.c
index bd093e96..c84dc404 100644
--- a/fontforge/openfontdlg.c
+++ b/fontforge/openfontdlg.c
@@ -556,7 +556,7 @@ return( false );
if ( !WithinList(d,event) )
GFileChooserPopupCheck(d->gfc,event);
} else if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
struct gfc_data *d = GDrawGetUserData(gw);
return( GGadgetDispatchEvent((GGadget *) (d->gfc),event));
} else if ( event->type == et_resize ) {
diff --git a/fontforge/problems.c b/fontforge/problems.c
index b56a4fcb..7160fd34 100644
--- a/fontforge/problems.c
+++ b/fontforge/problems.c
@@ -5270,6 +5270,10 @@ static int vwv_e_h(GWindow gw, GEvent *event) {
case et_mouseup:
case et_mousedown:
case et_mousemove:
+ if (( event->type==et_mouseup || event->type==et_mousedown ) &&
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
+return( GGadgetDispatchEvent(vw->vsb,event));
+ }
VWMouse(vw,event);
break;
case et_char:
diff --git a/fontforge/savefontdlg.c b/fontforge/savefontdlg.c
index b36efb9e..e468c943 100644
--- a/fontforge/savefontdlg.c
+++ b/fontforge/savefontdlg.c
@@ -2015,7 +2015,7 @@ return( false );
return( false );
GFileChooserPopupCheck(d->gfc,event);
} else if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
struct gfc_data *d = GDrawGetUserData(gw);
return( GGadgetDispatchEvent((GGadget *) (d->gfc),event));
}
diff --git a/fontforge/sftextfield.c b/fontforge/sftextfield.c
index 44591230..65fc61f5 100644
--- a/fontforge/sftextfield.c
+++ b/fontforge/sftextfield.c
@@ -1497,9 +1497,16 @@ return( false );
if ( event->type == et_crossing )
return( false );
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) &&
- st->vsb!=NULL )
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7)) {
+ int isv = event->u.mouse.button<=5;
+ if ( event->u.mouse.state&ksm_shift ) isv = !isv;
+ if ( isv && st->vsb!=NULL )
return( GGadgetDispatchEvent(&st->vsb->g,event));
+ else if ( !isv && st->hsb!=NULL )
+return( GGadgetDispatchEvent(&st->hsb->g,event));
+ else
+return( true );
+ }
if ( st->pressed==NULL && event->type == et_mousemove && g->popup_msg!=NULL &&
GGadgetWithin(g,event->u.mouse.x,event->u.mouse.y))
diff --git a/fontforge/showatt.c b/fontforge/showatt.c
index 661e462f..2562ce99 100644
--- a/fontforge/showatt.c
+++ b/fontforge/showatt.c
@@ -2684,7 +2684,7 @@ static int attv_e_h(GWindow gw, GEvent *event) {
struct att_dlg *att = (struct att_dlg *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(att->vsb,event));
}
@@ -2707,7 +2707,7 @@ static int att_e_h(GWindow gw, GEvent *event) {
struct att_dlg *att = (struct att_dlg *) GDrawGetUserData(gw);
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(att->vsb,event));
}
diff --git a/fontforge/stamp.c b/fontforge/stamp.c
index 4b0203b5..919a2208 100644
--- a/fontforge/stamp.c
+++ b/fontforge/stamp.c
@@ -1,5 +1,5 @@
#include <time.h>
-const time_t source_modtime = 1297295727L;
-const char *source_modtime_str = "23:55 GMT 9-Feb-2011";
-const char *source_version_str = "20110209";
+const time_t source_modtime = 1297116424L;
+const char *source_modtime_str = "22:07 GMT 7-Feb-2011";
+const char *source_version_str = "20110207";
diff --git a/fontforge/statemachine.c b/fontforge/statemachine.c
index 38592887..7f27e9fc 100644
--- a/fontforge/statemachine.c
+++ b/fontforge/statemachine.c
@@ -882,7 +882,7 @@ static void SMD_Mouse(SMD *smd,GEvent *event) {
GGadgetEndPopup();
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
GGadgetDispatchEvent(smd->vsb,event);
return;
}
diff --git a/fontforge/uiutil.c b/fontforge/uiutil.c
index f2a8579f..6ee9c4c7 100644
--- a/fontforge/uiutil.c
+++ b/fontforge/uiutil.c
@@ -516,7 +516,7 @@ return( false );
static int warnings_e_h(GWindow gw, GEvent *event) {
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(errdata.vsb,event));
}
@@ -660,7 +660,7 @@ static int warningsv_e_h(GWindow gw, GEvent *event) {
extern GBox _ggadget_Default_Box;
if (( event->type==et_mouseup || event->type==et_mousedown ) &&
- (event->u.mouse.button==4 || event->u.mouse.button==5) ) {
+ (event->u.mouse.button>=4 && event->u.mouse.button<=7) ) {
return( GGadgetDispatchEvent(errdata.vsb,event));
}