aboutsummaryrefslogtreecommitdiff
path: root/dw
diff options
context:
space:
mode:
authorJohannes Hofmann <Johannes.Hofmann@gmx.de>2011-07-18 20:52:44 +0200
committerJohannes Hofmann <Johannes.Hofmann@gmx.de>2011-07-18 20:52:44 +0200
commit794716c141563bf05fab9c905ea398f46548652f (patch)
treef51f3417d5e51d08a679738c988075ff12d6e412 /dw
parent74177a9f71b9f78ebdf4fcce2bf548c68f5d8258 (diff)
parentebfe88f79f48b35fd8440d33bdb38d1492ae09b7 (diff)
merge
Diffstat (limited to 'dw')
-rw-r--r--dw/fltkviewbase.cc40
-rw-r--r--dw/selection.cc12
2 files changed, 25 insertions, 27 deletions
diff --git a/dw/fltkviewbase.cc b/dw/fltkviewbase.cc
index f2fd96fc..a01adf1a 100644
--- a/dw/fltkviewbase.cc
+++ b/dw/fltkviewbase.cc
@@ -25,8 +25,6 @@
#include <FL/fl_draw.H>
#include <stdio.h>
-#include <wchar.h>
-#include <wctype.h>
#include "../lout/msg.h"
extern Fl_Widget* fl_oldfocus;
@@ -241,9 +239,9 @@ int FltkViewBase::handle (int event)
if (processed) {
/* pressed dw content; give focus to the view */
Fl::focus(this);
+ return true;
}
- return processed ? true : Fl_Group::handle (event);
-
+ break;
case FL_RELEASE:
processed =
theLayout->buttonRelease (this, Fl::event_clicks () + 1,
@@ -251,8 +249,9 @@ int FltkViewBase::handle (int event)
translateViewYToCanvasY (Fl::event_y ()),
getDwButtonState (), Fl::event_button ());
_MSG("RELEASE => %s\n", processed ? "true" : "false");
- return processed ? true : Fl_Group::handle (event);
-
+ if (processed)
+ return true;
+ break;
case FL_MOVE:
mouse_x = Fl::event_x();
mouse_y = Fl::event_y();
@@ -262,8 +261,9 @@ int FltkViewBase::handle (int event)
translateViewYToCanvasY (mouse_y),
getDwButtonState ());
_MSG("MOVE => %s\n", processed ? "true" : "false");
- return processed ? true : Fl_Group::handle (event);
-
+ if (processed)
+ return true;
+ break;
case FL_DRAG:
processed =
theLayout->motionNotify (this,
@@ -271,36 +271,34 @@ int FltkViewBase::handle (int event)
translateViewYToCanvasY (Fl::event_y ()),
getDwButtonState ());
_MSG("DRAG => %s\n", processed ? "true" : "false");
- return processed ? true : Fl_Group::handle (event);
-
+ if (processed)
+ return true;
+ break;
case FL_ENTER:
theLayout->enterNotify (this,
translateViewXToCanvasX (Fl::event_x ()),
translateViewYToCanvasY (Fl::event_y ()),
getDwButtonState ());
- return Fl_Group::handle (event);
-
+ break;
case FL_HIDE:
/* WORKAROUND: strangely, the tooltip window is not automatically hidden
* with its parent. Here we fake a LEAVE to achieve it. */
case FL_LEAVE:
theLayout->leaveNotify (this, getDwButtonState ());
- return Fl_Group::handle (event);
-
+ break;
case FL_FOCUS:
if (focused_child && find(focused_child) < children()) {
/* strangely, find() == children() if the child is not found */
focused_child->take_focus();
}
return 1;
-
case FL_UNFOCUS:
focused_child = fl_oldfocus;
return 0;
-
default:
- return Fl_Group::handle (event);
+ break;
}
+ return Fl_Group::handle (event);
}
// ----------------------------------------------------------------------
@@ -550,14 +548,14 @@ void FltkWidgetView::drawText (core::style::Font *font,
viewY = translateCanvasYToViewY (Y);
int curr = 0, next = 0, nb;
char chbuf[4];
- wchar_t wc, wcu;
+ int c, cu;
if (font->fontVariant == core::style::FONT_VARIANT_SMALL_CAPS) {
int sc_fontsize = lout::misc::roundInt(ff->size * 0.78);
for (curr = 0; next < len; curr = next) {
next = theLayout->nextGlyph(text, curr);
- wc = fl_utf8decode(text + curr, text + next, &nb);
- if ((wcu = towupper(wc)) == wc) {
+ c = fl_utf8decode(text + curr, text + next, &nb);
+ if ((cu = fl_toupper(c)) == c) {
/* already uppercase, just draw the character */
fl_font(ff->font, ff->size);
fl_draw(text + curr, next - curr, viewX, viewY);
@@ -565,7 +563,7 @@ void FltkWidgetView::drawText (core::style::Font *font,
viewX += (int)fl_width(text + curr, next - curr);
} else {
/* make utf8 string for converted char */
- nb = fl_utf8encode(wcu, chbuf);
+ nb = fl_utf8encode(cu, chbuf);
fl_font(ff->font, sc_fontsize);
fl_draw(chbuf, nb, viewX, viewY);
viewX += font->letterSpacing;
diff --git a/dw/selection.cc b/dw/selection.cc
index 9702eee0..1552e80e 100644
--- a/dw/selection.cc
+++ b/dw/selection.cc
@@ -94,7 +94,11 @@ bool SelectionState::buttonPress (Iterator *it, int charPos, int linkNo,
if (!event) return ret;
- if (linkNo != -1) {
+ if (event->button == 3) {
+ // menu popup
+ layout->emitLinkPress (itWidget, linkNo, -1, -1, -1, event);
+ ret = true;
+ } else if (linkNo != -1) {
// link handling
(void) layout->emitLinkPress (itWidget, linkNo, -1, -1, -1, event);
resetLink ();
@@ -134,10 +138,6 @@ bool SelectionState::buttonPress (Iterator *it, int charPos, int linkNo,
toChar = correctCharPos (to, charPos);
}
ret = true;
- } else if (event->button == 3) {
- // menu popup
- layout->emitLinkPress (itWidget, -1, -1, -1, -1, event);
- ret = true;
}
return ret;
@@ -302,7 +302,7 @@ void SelectionState::adjustSelection (Iterator *it, int charPos)
}
} else {
if (cmpOld * cmpDiff < 0) {
- // The user has reduced the selection. Unighlight the difference.
+ // The user has reduced the selection. Unhighlight the difference.
highlight0 (false, to, 0, newTo, 0, cmpDiff);
}