Commit Graph

36 Commits

Author SHA1 Message Date
FlashSystems 3918e59cc1
Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013)
* Fix popup location for tables

This commit introduces the `popupAbsCoords` option to the $button widget
and implements an absolut coordinate format.

Coordinates for popups are stored in the format `(x,y,w,h)`. These
coordinates are relative to the offset parent of the element that
defines the popup.

This commits adds a second format `@(x,y,w,h)`. Coordinates specified in
this format a relative to the pages root element.

The `popupAbsCoords` option of the $button widget enables the use of
this coordinates.

* Unify the declaration of the RegEx for parsing the popup-position

The regular expression was declared in three locations with the same
content. This commit supplies a new function `parseCoordinates` in
`popup.js`. This function returns the parsed coordinates and understands
the classic/absolute coordinates.

This function is used in `reveal.js` and `action-popup.js` to parse the
coordinates.

* Add documentation for coordinate systems

* Consolidate creating coordinate strings

The Popup object now contains a `buildCoordinates` method that can be
used to build coordinate strings. It takes an "enum" for the coordinate-
system to use. This makes everything easily extensible and prevents the
use of magic values.

* Add tests for `parseCoordinates` and `buildCoordinates`

* Add `tv-popup-abs-coords` to `collectDOMVariables`

This will make the absolute coordinates available for the
`DraggableWidget` and the `EventCatcherWidget`.

* Add documentation for the `tv-popup-abs-coords`

... to the `DraggableWidget` and the `EventCatcherWidget`.

* Fix crash when generating a static version of the TW

The Popup class is not initialized in `startup.js` if `$tw.browser` is
not true. After having consolidated the facilities for parsing
coordinate strings into `popup.js` this breaks because the static build
needs to parse coordinate stings even if no Popup module is initialized.
This commit solves this problem by making `readPopupState`,
`parseCoordinates` and `buildCoordinates` static methods of `popup.js`.
It also adds a comment to these functions to show that these can be called
safely even if the Popup-Class is not initialized.
2022-12-01 21:16:44 +00:00
jeremy@jermolene.com b9d27e9fd5 Revert "Fix popup position if popup is triggered from within an offsetParent element (#6887)"
This reverts commit 5b85786f73.
2022-10-22 13:22:15 +01:00
FlashSystems 5b85786f73
Fix popup position if popup is triggered from within an offsetParent element (#6887)
* Fix popup location for tables

This commit introduces the `popupAbsCoords` option to the $button widget
and implements an absolut coordinate format.

Coordinates for popups are stored in the format `(x,y,w,h)`. These
coordinates are relative to the offset parent of the element that
defines the popup.

This commits adds a second format `@(x,y,w,h)`. Coordinates specified in
this format a relative to the pages root element.

The `popupAbsCoords` option of the $button widget enables the use of
this coordinates.

* Unify the declaration of the RegEx for parsing the popup-position

The regular expression was declared in three locations with the same
content. This commit supplies a new function `parseCoordinates` in
`popup.js`. This function returns the parsed coordinates and understands
the classic/absolute coordinates.

This function is used in `reveal.js` and `action-popup.js` to parse the
coordinates.

* Add documentation for coordinate systems

* Consolidate creating coordinate strings

The Popup object now contains a `buildCoordinates` method that can be
used to build coordinate strings. It takes an "enum" for the coordinate-
system to use. This makes everything easily extensible and prevents the
use of magic values.

* Add tests for `parseCoordinates` and `buildCoordinates`

* Add `tv-popup-abs-coords` to `collectDOMVariables`

This will make the absolute coordinates available for the
`DraggableWidget` and the `EventCatcherWidget`.

* Add documentation for the `tv-popup-abs-coords`

... to the `DraggableWidget` and the `EventCatcherWidget`.
2022-10-22 13:13:39 +01:00
jeremy@jermolene.com 5e35c8dda6 Revert "Allow global keyboard shortcuts to work in framed editor (#6705)"
This reverts commit 8e64e21039.

See https://github.com/Jermolene/TiddlyWiki5/pull/6705#issuecomment-1162738927
2022-06-22 08:18:13 +01:00
Maurycy Zarzycki 8e64e21039
Allow global keyboard shortcuts to work in framed editor (#6705)
Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
2022-06-11 08:57:08 +01:00
Simon Huber b4deb7cc45
Add tv-widgetnode-width and tv-widgetnode-height (#6681)
* Add tv-widgetnode-width and tv-widgetnode-height to collectDOMVariables

* Add docs

* update docs

* Update modified field
2022-05-09 10:42:23 +01:00
Simon Huber 4b8594c4a8
Fix: eventcatcher widget - variables can be undefined (#6668)
* Fix: eventcatcher widget - variables can be undefined

* Fix: selectedNode can be an svg where offsetLeft ... are undefined

* Make check for offsetLeft short

* remove second collectDOMNodeVariables
2022-05-06 17:11:13 +01:00
Simon Huber 58dd47d128
Add "tv-selectednode-width" and "tv-selectednode-height" ... (#6582)
* Add "tv-selectednode-width" and "tv-selectednode-height" ...

... variables to dragstartactions

* Update dragndrop.js

* Update dragndrop.js

* Add docs

* Update dragndrop.js

* Update dragndrop.js

* Update DraggableWidget.tid

* Update modifier Variable.tid

* Update modifier Variable.tid

* Update eventcatcher.js

* Update dom.js

* Update dragndrop.js

* Update dragndrop.js

* Update DraggableWidget.tid

* add a space after //

* Update modifier Variable.tid
2022-04-15 13:46:09 +01:00
Joe Bordes 82ec63e711
style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
Saq Imtiaz 270ead4701
Eventcatcher: Fixed FF and IE bugs, added stopPropagation attribute (#5711) 2021-05-21 09:43:20 +01:00
jeremy@jermolene.com 5f98e7d7b3 Ensure $tw.utils.hasClass/addClass/removeClass work with SVG elements
These docs make clear that .className isn't recommended for SVG elements:

https://developer.mozilla.org/en-US/docs/Web/API/Element/className#Notes
2020-04-22 15:32:20 +01:00
Jeremy Ruston a65cfe98d5 Slight optimisation of $tw.utils.addClass() 2019-11-20 17:38:28 +00:00
Jeremy Ruston 8012a3508f Ensure tiddlyspot saver works with local storage disabled
Fixes #3955
2019-06-08 16:38:13 +01:00
BurningTreeC 55b5b6dd56 PageScroller: scroll in new windows (#3537)
* make pageScroller work in new windows

* update getScrollPosition to work for new windows

* Update dom.js
2018-11-13 18:07:55 +00:00
Jermolene 5a2e87eb09 Extend permalink/permaview to optionally copy URL to the clipboard
Fixes #3255
2018-08-16 19:39:18 +01:00
Jermolene 327fed30c8 Mitigate problem with microscropic editor in zoomin view
See #3098
2018-01-23 16:22:35 +00:00
Jermolene ca43a28d0e Fix copy to clipboard for iOS 10/11 2017-12-17 21:37:29 +00:00
Jermolene d2ff164c07 Add support for tm-copy-to-clipboard message 2017-12-15 15:08:18 +00:00
Jermolene f846a004b6 Partial fix for copyStyles problem under Chrome
There’s still a problem: in Chrome, the styling of the textarea
placeholder isn’t correct.
2016-05-17 15:45:10 -06:00
Jermolene e54cc7b211 Fix copyStyles() not working in Firefox
Yet more browser incompatibilities to weep over…
2016-05-09 14:11:08 -06:00
Jeremy Ruston 2adf09129d Introduce text editor toolbar (#2315)
Tada!
2016-04-22 08:36:29 +01:00
Jermolene 5f018c2092 More defensive dom utility hasClass()
It was failing on SVG elements such as `<path>`
2014-07-28 14:19:52 +01:00
Jermolene 3351ae7e29 Fix issue with localStorage error on Firefox
Firefox raises an error if window.localStorage is accessed when cookies
are disabled:

https://bugzilla.mozilla.org/show_bug.cgi?id=771890
2014-07-06 10:11:21 +01:00
Jermolene 3cce12e13f More refactoring of startup.js 2014-05-05 14:41:46 +01:00
Jermolene b26a32b93a Remove obsolete stylesheet helper 2014-02-08 09:29:11 +00:00
Jermolene 027421f5e6 More coding style consistency 2014-01-03 10:54:00 +00:00
Jermolene 145e3ece78 Fix $tw.utils.hasClass() to work even if the element doesn't have a className property 2013-11-12 22:01:31 +00:00
Jeremy Ruston 05e73ee1da Cope with localStorage not being available
IE10 doesn't allow localStorage for HTML pages loaded from the file://
protocol.
Boo.
2013-10-29 22:21:25 +00:00
Jeremy Ruston 4a663d1661 Improve docs for `$tw.utils.addEventListeners()` 2013-09-14 13:47:51 +01:00
Jeremy Ruston ce273a22f1 More DOM utilities 2012-12-13 21:31:41 +00:00
Jeremy Ruston 9f6909ddc4 Appeasing the gods of JSHint 2012-11-06 17:21:56 +00:00
Jeremy Ruston 324a87a8a2 Further refinements to the list mechanism
Much better navigation animation for classic view
2012-10-26 22:12:40 +01:00
Jeremy Ruston fd4ff10bf3 Added $tw.utils.pulse() for animating elements
To make it easier to see things while debugging
2012-10-15 17:18:32 +01:00
Jeremy Ruston c11743088a Niceties for JSHint 2012-08-02 22:32:34 +01:00
Jeremy Ruston a05adc9d53 Reorganisations
Part two
2012-07-14 15:57:36 +01:00
Jeremy Ruston 3d4a5e1602 A bunch more source file reorganisations
Part one
2012-07-14 15:56:35 +01:00