2006-03-26 Lucas Rocha <lucasr@gnome.org>
Keyboard shortcuts revamp (Fixes bug #310455 partly). Patch from
Jaap Haitsma <jaap@haitsma.org>.
* shell/eog-gtk-ui.xml: Add Home and End as shortcut keys for the first
and last images respectively
* shell/eog-window.c:
(action_entries_image) Add Home and End as keyboard shortcuts for the
first and last images respectively.
(action_entries_collection) Change the keyboard shortcuts of first,
last, next and previous image so they conform to the HIG
First was Ctrl+Home now Alt+Home
Last was Ctrl+End now Alt+End
Next was Ctrl+Right now Alt+Right
Previous was Ctrl+Left now Alt+Left
(eog_window_key_press) If no scrollbars visible PageDown, Right and Down
show the next image and PageUp, Left and Up show the previous image
* libeog/eog-scroll-view.{c|h}:
Add eog_scroll_view_scrollbars_visible function
(display_key_press_event) Page up/down now scroll 3/4 of the image
(page) height (Fixes bug #324871). Ctrl PageUp/PageDown scroll
left/right
2006-02-27 Lucas Rocha <lucasr@gnome.org>
* eog-scroll-view.c (eog_scroll_view_zoom_in,
eog_scroll_view_zoom_out): correct handling of zoom
double precision with mouse wheel (Fixes bug #310833).
Patch from Felix Riemann <felix@hsgheli.de>.
2006-01-10 Lucas Rocha <lucasr@gnome.org>
* libeog/eog-scroll-view.c (paint_rectangle,
set_minimum_zoom_factor, set_zoom, set_zoom_fit,
eog_scroll_view_get_zoom_is_min, eog_scroll_view_instance_init):
refresh image section for very small images (Fixes bug #317641).
Also, the zoom out is locked when the image gets 1px wide. Patch
from Felix Riemann <felix@hsgheli.de> with contribution from
Claudio Saavedra <csaavedra@alumnos.utalca.cl>.
2005-11-05 Lucas Rocha <lucasr@cvs.gnome.org>
* libeog/eog-scroll-view.c (display_key_press_event):
Page Up and Page Down keys scroll images up and
down (Fixes bug #152364).
2005-11-01 Lucas Rocha <lucasr@cvs.gnome.org>
* libeog/eog-scroll-view.c, shell/eog-window.c: on single
image view, default focus on scroll-view. On collection view,
default focus on wrap-list (Fixes bug #169836).
* eog.glade, shell/eog-preferences.c, shell/eog-preferences.h:
Apply patch from Paolo Borelli <pborelli@katamail.com> to
make preferences and help dialog launch in the center of the
parent window. Closes bug #144631.
* shell/eog-window.c: Patch from Paolo Borelli to fix miscalculated
zoom amount. Closes bug #308910.
* libeog/eog-scroll-view.c, libeog/eog-scroll-view.h,
shell/eog-window.c: Another patch from Paolo Borelli to
desensitize zoom in/out buttons at max/min zoom levels.
2005-06-23 Tim Gerla <tim@gerla.net>
* libeog/*.c, shell/*.c:
Apply patch from Kjartan Maraas <kmaraas@gnome.org>:
config.h has to be the first file included in a .c file and
it must not be included more than once else you get undefined
behaviour and broken translations etc. This patch fixes this up,
along with a couple of other minor memory-management bugs.
CVl: ----------------------------------------------------------------------
2004-02-19 Jens Finke <jens@triq.net>
Fix AIX compilation problems - #134866.
* libeog/eog-image.h
* shell/eog-window.h: No trailing comma after last enum constant.
* libeog/eog-scroll-view.c: No C++ comments in C source files.
2003-09-21 Jens Finke <jens@triq.net>
* collection/eog-collection-view.c (create_user_interface): Create
horizontal splitter to hold info view only if libexif is
available. Otherwise put the image view directly into the vertical
pane.
* libeog/eog-scroll-view.c (paint_rectangle): Check if widget is
drawable (fixes crash on shutdown). Check if scaled image width
and height is > 1.
2003-04-27 Jens Finke <jens@triq.net>
* libeog/eog-full-screen.c: Queue the images to load and load one
by one. Simplified the code.
* libeog/eog-image.[ch] (eog_image_new_uri),
(eog_image_new): Removed load mode parameter.
(eog_image_load): Removed return parameter. Instead, emit load
finished signal if the image is already loaded.
(eog_image_free_mem): Set load status to none.
* libeog/eog-info-view.c (eog_info_view_set_image):
* viewer/eog-image-view.c (load_uri_cb):
* collection/eog-collection-model.c (directory_visit_cb):
(real_file_loading): Removed load mode paramter for eog_image_new.
* libeog/eog-scroll-view.c (eog_scroll_view_set_image): Removed
the special case when an image is already loaded. Submit
LOAD_DEFAULT to eog_image_load.
2003-04-06 Jens Finke <jens@triq.net>
* libeog/cursors.c: Added invisible cursor data.
(cursor_get): Made it a non public function.
(cursor_set): New function, which directly set the desired cursor
for the widget.
* libeog/cursors.h: New cursor types: CURSOR_INVISBLE and
CURSOR_DEFAULT.
* libeog/eog-full-screen.c: Implemented automatic cursor
hiding. Fixes#92184.
(check_cursor_hide),
(eog_full_screen_motion): New functions.
(eog_full_screen_show): Init cursor hiding stuff.
(eog_full_screen_class_init): Register mouse motion event
callback.
* libeog/eog-scroll-view.c (check_scrollbar_visibility): Set
cursor type according to the state of the scrollbars.
(is_image_movable): New function.
(eog_scroll_view_button_press_event): Use cursor_set, set it only
if the image is movable.
(eog_scroll_view_button_release_event): Use cursor_set.
2003-04-02 Federico Mena Quintero <federico@ximian.com>
* libeog/eog-scroll-view.c (eog_scroll_view_get_image_size):
"*width = *height = 0", not "width = height = 0".
(NUM_IMAGE_CALLBACKS): Use a macro rather than a hardcoded value
for the number of signals we connect to.
(ZoomMode): Use an enum rather than ints.
(ProgressiveState): Likewise.
(update_scrollbar_values): Use gtk_adjustment_changed() rather
than emitting signals for the adjustments directly.
(set_zoom): Use NULL, not 0, when calling
check_scrollbar_visibility().
(display_key_press_event): Likewise.
(display_map_event): Likewise.
(image_loading_update_cb): Likewise.
(image_loading_finished_cb): Likewise.
(image_changed_cb): Likewise.
(eog_scroll_view_zoom_fit): Likewise.
(eog_scroll_view_set_image): Likewise.
(check_scrollbar_visibility): We don't use the return value
anywhere, so make it return void.
(is_unity_zoom): Take in an EogScrollView, not a private
structure.
(pack_pixbuf): Removed.
(paint_rectangle): Compute the background color correctly for the
TRASNP_BACKGROUND case.
(scroll_to): Use gtk_adjustment_value_changed() rather than
emitting signals for the adjustments directly.
(compute_center_zoom_offsets): Do not allow negative offsets so
the image doesn't creep to the right when we zoom down at the
upper left corner.
(set_zoom_fit): Set the new offsets before emitting the signal.
(display_map_cb): Removed.
(eog_scroll_view_new): Do not make the whole table non-double-buffered.
* libeog/eog-scroll-view.h (TransparencyStyle): Rename
TRANSP_CHECKEDPATTERN to TRANSP_CHECKED.
2003-03-11 Jens Finke <jens@triq.net>
* libeog/eog-image.[ch]: Switched to a thread based loading
mechanism.
(eog_image_dispose): Free mutex.
(check_load_status): New function.
(load_area_updated),
(load_size_prepared),
(real_image_load),
(eog_image_load): Reworked, so that they use the thread based
approach.
(eog_image_get_pixbuf): Add mutex around pixbuf accessing.
(eog_image_cancel_load): New function.
* libeog/eog-scroll-view.c (free_image_resources): Cancel loading
of the previous shown image.
* shell/eog-window.c (property_changed_cb): Be quite.
2003-03-07 Jens Finke <jens@triq.net>
* libeog/eog-full-screen.[ch]: Improved the in advance loading of
images. Also frees image data, which is probably not shown
next.
* libeog/eog-scroll-view.c (eog_scroll_view_dispose): Free uta and
remove possibly active idle handler.
* collection/eog-wrap-list.c (eog_wrap_list_get_selected_images):
Just return pointer to internal list.
* collection/eog-collection-view.c (verb_SlideShow_cb): Consider
selections when assembling the list of images for the slide show.
* viewer/eog-image-view.c (verb_FullScreen_cb): Free list.
2003-03-03 Jens Finke <jens@triq.net>
* libeog/eog-scroll-view.c (free_image_resources): New function
which cleans up all resources related to the viewed image.
(eog_scroll_view_set_image): Call free_image_resources if there
has been an image loaded already.
(eog_scroll_view_dispose): Call free_image_resources.
2003-03-03 Jens Finke <jens@triq.net>
* libeog/eog-image.c (dispatch_image_finished): Unref image.
(add_image_to_queue): Ref image before putting it into the queue.
(eog_image_new_uri),
(eog_image_finalize): Added ref counting for all produced image
objects.
(real_image_load): Unref the processed image object.
(eog_image_load): Ref the image object before submitting it to the
real_image_load idle callback.
* libeog/eog-scroll-view.c (eog_scroll_view_dispose): Oops,
implemented this function. We finally free something.
* shell/eog-window.c (open_uri_list_cleanup): New function.
(eog_window_class_init): Register open_uri_list_cleanup as cleanup
handler for the open-uri-list signal.
* shell/main.c (open_uri_list_cb): Don't free the uri_list. Will
be done by the cleanup handler in eog-window.c.
* viewer/eog-image-view.c (load_uri_cb): Don't ref new created
image object.
2003-03-02 Jens Finke <jens@triq.net>
Re-enabled image saving.
* libeog/eog-file-selection.c (get_save_formats): Moved to
eog-pixbuf-util.
(eog_append_menu_entry),
(check_extension),
(is_filename_valid),
(changed_cb): Free values from gdk_pixbuf_format calls.
* libeog/eog-image.c: Changed "changed" signal name to
"image_changed".
(eog_image_save): Rely completely on GdkPixbuf for image saving
and use GdkPixbufFormat information to determine the filetype.
This removes xpm saving support from eog, but the right way should
be to put this into gdk-pixbuf anyway.
* libeog/eog-pixbuf-util.c (eog_pixbuf_get_savable_formats): New
function, previously in eog-file-selection.c.
* libeog/eog-scroll-view.c (eog_scroll_view_set_image):
s/changed/image_changed.
* viewer/eog-iamge-view.c (verb_SaveAs_cb): Reenabled.
(item_factory_translate_cb): Use gettext again.
(save_uri_cb): Use HIG dialogs.
New eog architecture. Moved more stuff into libeog and basically merged
image-view.[ch] and ui-image.[ch]. The result is eog-scroll-view.[ch].
* libeog/ui-image.[ch],
* libeog/image-view.[ch]: Removed.
* libeog/eog-scroll-view.[ch]: New, basic widget for displaying an
EogImage.
* libeog/eog-image-helper.[ch],
* libeog/eog-image.[ch]: Image model, provides all operations on
an image.
* libeog/eog-full-screen.[ch]: Moved from viewer. Uses a
EogScrollView widget for displaying the image.
* libeog/libeog-marshal.list: New, list of callback marshallers.
* libeog/Makefile.am: SOURES file list updated, added
libeog-marshal.[ch] generation.
* libeog/accessible-image-view.[ch]: Use EogScrollView instead of
ImageView. Fixed indention.
* libeog/eog-pixbuf-util.c (eog_pixbuf_flip_vertical): Free
pixbuf.
* libeog/eog-pixbuf-util.h: Added include guards.
* libeog/zoom.[ch] (zoom_image_has_standard_size): Removed.
* viewer/Makefile.am (SOURCES): Removed everything except main.c
and eog-image-view.[ch]
* viewer/eog-image-view.[ch]: Rewritten. This bonobo object serves
as a simple wrapper for an EogScrollView and EogImage and provides
onyl gui and glue code. It implements the PersistFile, Control and
Zoomable interfaces.
* viewer/main.c (eog_image_viewer_factory): Removed EogImage
bonobo stuff.
* shell/eog-window.c (sb_policy_changed): Removed.
(eog_window_init): Don't register for policy changes.
(adapt_window_size): New function.
(property_changed_cb): New window/width, window/height properties.
(adapt_window_size_to_control): Simplified, call
adapt_window_size.
* configure.in: Bumped version to 2.3.0.