diff --git a/CHANGES b/CHANGES index fc4481ab3..8e4455cc1 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,6 @@ CHANGES IN FLTK 1.1.10 + - Fixed static linking of image libraries (STR #1962) - Fixed callback would not be called when shortcut was used with radio and toggle buttons in default FL_RELEASE mode. - Fixed a problem with TrackMouseEvent() (Windows only) that would diff --git a/configure.in b/configure.in index e229c096d..0b1000a9a 100644 --- a/configure.in +++ b/configure.in @@ -481,8 +481,10 @@ AC_SUBST(AUDIOLIBS) dnl Check for image libraries... SAVELIBS="$LIBS" IMAGELIBS="" +STATICIMAGELIBS="" AC_SUBST(IMAGELIBS) +AC_SUBST(STATICIMAGELIBS) AC_ARG_ENABLE(localjpeg, [ --enable-localjpeg use local JPEG library, default=auto], [if test x$enable_localjpeg = xyes; then @@ -494,6 +496,7 @@ AC_CHECK_LIB(jpeg,jpeg_CreateCompress, JPEGINC="" JPEG="" IMAGELIBS="-ljpeg $IMAGELIBS", + STATICIMAGELIBS="-ljpeg $STATICIMAGELIBS" if test x$enable_localjpeg = xno; then JPEGINC="" JPEG="" @@ -502,6 +505,7 @@ AC_CHECK_LIB(jpeg,jpeg_CreateCompress, JPEGINC="-I../jpeg" JPEG="jpeg" IMAGELIBS="-lfltk_jpeg $IMAGELIBS" + STATICIMAGELIBS="\$libdir/libfltk_jpeg.a $STATICIMAGELIBS" fi) AC_ARG_ENABLE(localzlib, [ --enable-localzlib use local ZLIB library, default=auto], @@ -515,6 +519,7 @@ AC_CHECK_LIB(z,gzgets, ZLIB="" LIBS="-lz $LIBS" IMAGELIBS="-lz $IMAGELIBS", + STATICIMAGELIBS="-lz $STATICIMAGELIBS" if test x$enable_localzlib = xno; then ZLIBINC="" ZLIB="" @@ -524,6 +529,7 @@ AC_CHECK_LIB(z,gzgets, ZLIB="zlib" LIBS="-lfltk_z $LIBS" IMAGELIBS="-lfltk_z $IMAGELIBS" + STATICIMAGELIBS="\$libdir/libfltk_z.a $STATICIMAGELIBS" fi) AC_ARG_ENABLE(localpng, [ --enable-localpng use local PNG library, default=auto], @@ -535,6 +541,7 @@ AC_CHECK_LIB(png,png_set_tRNS_to_alpha, [ PNGINC="" PNG="" IMAGELIBS="-lpng $IMAGELIBS" + STATICIMAGELIBS="-lpng $STATICIMAGELIBS" AC_DEFINE(HAVE_LIBPNG) AC_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H))],[ if test x$enable_localpng = xno; then @@ -546,6 +553,7 @@ AC_CHECK_LIB(png,png_set_tRNS_to_alpha, [ PNGINC="-I../png" PNG="png" IMAGELIBS="-lfltk_png $IMAGELIBS" + STATICIMAGELIBS="\$libdir/libfltk_png.a $STATICIMAGELIBS" fi]) AC_SUBST(JPEG) diff --git a/fltk-config.in b/fltk-config.in index dcb971af2..5b86b33f9 100755 --- a/fltk-config.in +++ b/fltk-config.in @@ -92,6 +92,7 @@ LIBNAME="@LIBNAME@" DSONAME="@DSONAME@" DSOLINK="@DSOLINK@" IMAGELIBS="@IMAGELIBS@" +STATICIMAGELIBS="@STATICIMAGELIBS@" SHAREDSUFFIX="@SHAREDSUFFIX@" usage () @@ -236,7 +237,7 @@ if test x$use_gl = xyes; then fi if test x$use_images = xyes; then LDLIBS="-lfltk_images$SHAREDSUFFIX $IMAGELIBS $LDLIBS" - LDSTATIC="$libdir/libfltk_images.a $IMAGELIBS $LDSTATIC" + LDSTATIC="$libdir/libfltk_images.a $STATICIMAGELIBS $LDSTATIC" fi LDLIBS="$DSOLINK $LDFLAGS $libs $LDLIBS" diff --git a/test/menubar.cxx b/test/menubar.cxx index 787c939b3..1555c3cc8 100644 --- a/test/menubar.cxx +++ b/test/menubar.cxx @@ -171,6 +171,41 @@ Fl_Menu_Item pulldown[] = { Fl_Menu_* menus[4]; +class MyWindow : public Fl_Window { +public: + MyWindow(int w, int h, const char *l=0) + : Fl_Window(w, h, l) { } + int handle(int event) { + switch (event) { + case FL_ENTER: +// puts("ENTER"); break; + case FL_LEAVE: +// puts("LEAVE"); break; + break; + } +// printf("%d\n", event); + return Fl_Window::handle(event); + } +}; + + +class MyButton : public Fl_Button { +public: + MyButton(int x, int y,int w, int h, const char *l=0) + : Fl_Button(x, y, w, h, l) { } + int handle(int event) { + switch (event) { + case FL_ENTER: + puts("ENTER"); break; + case FL_LEAVE: + puts("LEAVE"); break; + } + printf("%d\n", event); + return Fl_Button::handle(event); + } +}; + + int main(int argc, char **argv) { //Fl::set_color(Fl_Color(15),0,0,128); for (int i=0; i<99; i++) { @@ -178,11 +213,12 @@ int main(int argc, char **argv) { sprintf(buf,"item %d",i); hugemenu[i].text = strdup(buf); } - Fl_Window window(WIDTH,400); + MyWindow window(WIDTH,400); window.callback(window_cb); Fl_Menu_Bar menubar(0,0,WIDTH,30); menubar.menu(menutable); menubar.callback(test_cb); menus[0] = &menubar; + MyButton bb(100, 125, 120, 25, "Erwinn"); Fl_Menu_Button mb1(100,100,120,25,"&menubutton"); mb1.menu(pulldown); mb1.tooltip("this is a menu button"); mb1.callback(test_cb);