Commit graph

1308 commits

Author SHA1 Message Date
Mark Kim
b51145123d macOS fixes
- macos_ instead of macos.  Appears to hae been missed when merging a
  previously made change in the mainline.
- Additional linker flags required for building with SDL2.  Unclear why
  pkg-config provides these flags when building with SDL1 but not with SDL2 --
  it's inconsistent but strictly not a bug, may need to discuss with the
  MacPorts team.
2021-02-21 09:44:43 -05:00
Bill Kendrick
76cb1c5446 Linear gradient fill mode 2021-02-20 21:35:46 -08:00
Bill Kendrick
058191bd04 Radial gradient fill tool added
Note: Need to add to docs.
2021-02-20 18:08:06 -08:00
Bill Kendrick
c63b86c8fa Adding sub-tool support to Fill tool
Currently only one sub-tool (Solid) shown, as no code for new
tools has been added yet.  (Plans for linear & radial gradients.)
2021-02-20 16:42:35 -08:00
Bill Kendrick
a8a4001fe9 Squelch some debugging printf() ("most ...") 2021-02-20 15:27:10 -08:00
Bill Kendrick
7cd547e746 "xorpixel()" function added to Magic Tools API 2021-02-20 15:19:40 -08:00
Pere Pujal i Carabantes
43d4f8b494 Activating the ability to have more than one colors row.
Usefull for people with coarse input devices that need bigger buttons but got color buttons too narrow.
Just added the option, all the support code where already in place.
2021-02-05 22:14:39 +01:00
Pere Pujal i Carabantes
0b65e86170 Activating the ability to have more than one colors row.
Usefull for people with coarse input devices that need bigger buttons but got color buttons too narrow.
Just added the option, all the support code where already in place.
2021-02-05 03:42:01 +01:00
Pere Pujal i Carabantes
f740306e43 January 31 Merge branch 'master' into sdl2.0 2021-01-31 19:40:53 +01:00
Bill Kendrick
19e5e735cc Scale brushes when rendering in buttos
Allows for larger brushes without UI bugs, but more importantly,
smaller buttons (via --buttonsize less than "48") without UI bugs.
2021-01-27 00:13:42 -08:00
Bill Kendrick
73eef80068 Avoid using HUGE font for button labels
They were rendering very large, and shorter strings were
being shrunk down less horizontally, so appearing stretched out
(and touching the edges of the button needlessly).
2021-01-26 23:33:45 -08:00
Bill Kendrick
3ebb76e7bb Mend backward logic in font picking for buttons
Was choosing largest font (and scaling down) for medium-sized
buttons, and medium font for large-sized buttons.
2021-01-26 23:10:05 -08:00
Bill Kendrick
726aa0897e Disallow window+button size cause overlap in Open
Need room for 3 buttons on left and right, with scroll-down
arrow in the middle.  (Helps both Open and Open->Slides dialogs.)
2021-01-26 23:00:27 -08:00
Bill Kendrick
4d9bd3945d Ensure buttonsize + window size sufficiently tall
Need space for 5 buttons' worth of height, for situations such as

 * Stamps
   1. up/down scroll arrows (1 button height, total)
   2. actually show some stamps
   3. left/right paging buttons
   4. flip/mirror toggles
   5. scale 'slider'

 * Label
   1. up/down scroll arrows (1 button height, total)
   2. actually show some fonts
   3. label picker button
   4. bold/italic toggles
   5. shrink/grow font size buttons
2021-01-26 22:47:36 -08:00
Pere Pujal i Carabantes
41e4e80e4b Bottom scroll button, set arrow cursor when scrolling by clicking button. 2021-01-26 23:49:54 +01:00
Bill Kendrick
39b69643bd Avoid leaving XOR outline after Eraser drag 2021-01-24 16:49:00 -08:00
Pere Pujal i Carabantes
046baeb85b Adding scroll to the erasers, mainly copying/adapting code from draw_brushes().
Also adapt the mouse cursor code.
2021-01-24 16:31:37 +01:00
Pere Pujal i Carabantes
3326db5f13 Tweaking stamp sizer position. 2021-01-21 00:06:50 +01:00
Bill Kendrick
d103172ee9 Abort if window + button size is a bad combo
Abort if the requested combination of window size and
button size would result in no buttons being visible in the UI.
2021-01-19 00:14:44 -08:00
Pere Pujal i Carabantes
5946a0fa71 Better text on scaled buttons. 2021-01-18 23:38:08 +01:00
Bill Kendrick
8529786356 Doc'ing (WIP) larger-UI-buttons in CHANGES.txt
Need fuller description, updating OPTIONS, more testing
and tweaking, etc.
2021-01-18 11:40:05 -08:00
Pere Pujal i Carabantes
2faf78fd21 Merging the resize buttons work. 2021-01-18 14:32:51 +01:00
Mark Kim
7727b995c5 Minimize CPU/energy usage
We received a report of Tux Paint generating too much heat on a MacBook
Pro (15-inch, 2017 running macOS Mojave 10.14.6).  The bug report
included a screenshot of Activity Monitor's Energy Tab showing Tux Paint
having an Enegy Impact of "23.4" and Avg Energy Impact of "3.94".

Although we weren't able to reproduce the same conditions exactly, we
did observe Tux Paint having an Energy Impact level of around ~15 even
when idle on both macOS Yosemite 10.10.5 and Big Sur 11.1.  Energy
Impact leve of ~25 when in use was not uncommon, and spiked to ~55.  The
MacBook Air used for testing (11-inch, Early 2014) did not become hot
"to the touch" as was originally reported, but it did become noticibly
warm.

An investigation found the cause to be in two places:

1. Tux Paint's main loop runs fairly tightly, yielding only a minimum
   time slice to the kernel after each iteration using SDL_Delay(1)
   (1 millisecond).  This has been increasd to 10 millisecond to give
   more slice back to the kernel.  Increasing the 1ms yield to 10ms
   should be only minimally noticible as Tux Paint is primarily a human
   interaction software and human eyes perceive responses < ~100ms as
   immediate, giving us over 90ms to accomplish what we need to after
   each iteration as opposed to the previous 99ms.

2. Enabling SDL's timer subsystem (SDL_INIT_TIMER), even when not used
   actively, has a high impact on the energy impact.  Some testing
   showed the timer subsystem, though supposedly a part of SDL_Delay() and
   SDL_GetTicks(), is not required to be enabled to use those functions.
   It does require to be enabled, however, to use SDL_AddTimer() which
   is only used in Tux Paint when scrolling.  Tux Paint therefore has
   been modified to enable the timer subsystem only when scrolling
   starts and disable it when not scrolling.

The solution to #2 is not an ideal approach but it did provide a quick
solution to the user having the problem.  Issue #2 should get resolved
naturally when we upgrade to SDL2 where the timer subsystem does not
appear to have the energy impact issue.
2021-01-16 21:01:21 -05:00
Pere Pujal i Carabantes
01bfcb5846 Merge branch 'master' of ssh://git.code.sf.net/p/tuxpaint/tuxpaint 2021-01-16 01:21:50 +01:00
Pere Pujal i Carabantes
54f6a4a07d Merge branch 'sdl2.0' of ssh://git.code.sf.net/p/tuxpaint/tuxpaint into sdl2.0 2021-01-16 01:21:08 +01:00
Pere Pujal i Carabantes
afa562680e Merge branch 'master' into sdl2.0 2021-01-16 00:53:38 +01:00
Pere Pujal i Carabantes
eafa02812e Magic tools: Android forbids restricted users from some standard dirs, detecting custom ones at runtime. 2021-01-16 00:43:46 +01:00
Bill Kendrick
c97932606f mkdir exportdir's parent, if necessary
Tux Paint's export features will fail if the parent
of the export directory didn't exist.  e.g., using the
default (either via XDG or hard-coded fallback) of
"~/Pictures/TuxPaint/", Tux Paint could not export if
"~/Pictures/" didn't exist yet.  It will now try to
mkdir it as well.  h/t Tim Dickson

Updated OPTIONS documents to explain this.

Also, documenting --exportdir in manpage (was missing!)
2021-01-13 22:48:29 -08:00
Pere Pujal i Carabantes
b0caacde09 Better handle of text in buttons. 2020-12-16 19:10:08 +01:00
Pere Pujal i Carabantes
1fd1c857dd Better handle of text in buttons. 2020-12-16 19:09:27 +01:00
Pere Pujal i Carabantes
f29bf895fa Forgot to scale too the erasers, doing now. 2020-12-12 00:42:13 +01:00
Pere Pujal i Carabantes
29b16ed619 Forgot to scale too the erasers, doing now. 2020-12-12 00:41:39 +01:00
Pere Pujal i Carabantes
26870c38be Merge branch 'master' into sdl2.0 2020-12-12 00:39:52 +01:00
Pere Pujal i Carabantes
934f3aed26 Merge branch 'master' of ssh://git.code.sf.net/p/tuxpaint/tuxpaint 2020-12-11 23:53:37 +01:00
Pere Pujal i Carabantes
3b44b4929f 2020/12/02 Merge branch 'master' into sdl2.0 2020-12-02 20:24:43 +01:00
Bill Kendrick
71152d1369 Bump latest mod. date in docs and tuxpaint.c 2020-11-21 14:27:26 -08:00
Bill Kendrick
032c89a65e Fix: struct dirent has no "d_type" on MinGW/MSYS2
I found current git tree does not compile on Windows because
struct dirent has no member "d_type" on MinGW/MSYS2.
(TOYAMA Shin-ich via Tuxpaint-devel list)
2020-11-21 14:26:08 -08:00
dolphin6k
968de6f0ea Enabled compiling on John Popplewell's build environment (for Windows 2000 & XP) 2020-11-15 13:47:29 +09:00
Bill Kendrick
a36dcee321 Mend personal Template loading bug in New dialog
Mended bug where a personal Template could not be loaded
due to how we tracked which entry in the "New" dialog
was the first template image.

Also, don't track directories when searching for Starters and
Templates (e.g., ".", "..", and ".thumbs"), since it's just
a waste of time/space.
2020-11-13 20:36:35 -08:00
Bill Kendrick
b857d67f28 Correct locked shapes' rotation after corner drag
When using the new (on 0.9.25) corner-drag option for creating
a new shape, "shape-locked" (1:1 aspect ratio) shapes -- square
and octagon -- would only rotate in a few positions, based on the
angle of ther vertices.

Corrected this, with no apparent adverse effect on other shapes,
in either drag mode (classic "from-center", and new "from-corner").

Also, removed extranous whitespace before EOLs in src/tuxpaint.c.
2020-11-12 02:31:21 +01:00
Bill Kendrick
5a1a80ff69 Correct locked shapes' rotation after corner drag
When using the new (on 0.9.25) corner-drag option for creating
a new shape, "shape-locked" (1:1 aspect ratio) shapes -- square
and octagon -- would only rotate in a few positions, based on the
angle of ther vertices.

Corrected this, with no apparent adverse effect on other shapes,
in either drag mode (classic "from-center", and new "from-corner").

Also, removed extranous whitespace before EOLs in src/tuxpaint.c.
2020-11-10 09:54:50 -08:00
Pere Pujal i Carabantes
63e060afa3 Merge branch 'master' into sdl2.0 2020-10-28 17:03:05 +01:00
Bill Kendrick
f024a95a96 Avoid bogusly trying to mkdir sysdir in savedir
While we weren't attempting to save thumbnail PNG files of the
starter and templates that are scanned in the system-wide Tux Paint
directory, we WERE trying to incorrectly `mkdir` such directories
within the user's personal directory.
(e.g., "/home/kendrick/.tuxpaint//usr/local/share/tuxpaint/templates")

Mended.
2020-10-15 22:33:03 -07:00
Pere Pujal i Carabantes
8c8852c8db More on scaling the size of buttons. Also in dialogs like Open, color picker... 2020-10-15 04:19:06 +02:00
Pere Pujal i Carabantes
7121c75c78 Option 'buttonsize' to change the size of the buttons. 2020-09-28 13:35:18 +02:00
Pere Pujal i Carabantes
82881a65f4 Not resizing buttons if not needed. First letters of text were under resized stamp sound buttons. 2020-09-25 08:58:23 +02:00
Pere Pujal i Carabantes
8a6ecec9ec Big changes to allow resizing the buttons of the interface.
Still to do:
Let the user choose the size of the buttons via config file and command line
Investigate why some of the magic icons displays all black.
2020-09-11 01:17:43 +02:00
Bill Kendrick
40033c7632 Shapes rotation improvement with centered too
Avoid shapes flipping upside-down during rotation step,
when stretching from right-to-left -- also when using the
original, center-based shape stretching mode.
2020-08-30 00:03:32 -07:00
Bill Kendrick
93f05af10d Ensure easy rotation of corner-stretched shapes
If corner-stretched shape is pulled to the left, make sure the
rotation step works properly.
2020-08-28 21:51:51 -07:00
Bill Kendrick
b88c8a9030 Refresh full canvas after drawing shape
Ensure that shape gets completely drawn and XOR outline gets
removed.
2020-08-28 21:27:04 -07:00