diff --git a/javascripts/discourse/initializers/topic-list-columns.gjs b/javascripts/discourse/initializers/topic-list-columns.gjs index bf58304..e1d8764 100644 --- a/javascripts/discourse/initializers/topic-list-columns.gjs +++ b/javascripts/discourse/initializers/topic-list-columns.gjs @@ -83,6 +83,34 @@ export default { api.registerValueTransformer("topic-list-item-mobile-layout", () => { return false; }); + + api.registerBehaviorTransformer( + "topic-list-item-click", + ({ context: { event }, next }) => { + if (event.target.closest("a, button, input")) { + return next(); + } + + event.preventDefault(); + event.stopPropagation(); + + const topicLink = event.target + .closest("tr") + .querySelector("a.raw-topic-link"); + + // Redespatch the click on the topic link, so that all key-handing is sorted + topicLink.dispatchEvent( + new MouseEvent("click", { + ctrlKey: event.ctrlKey, + metaKey: event.metaKey, + shiftKey: event.shiftKey, + button: event.button, + bubbles: true, + cancelable: true, + }) + ); + } + ); }); }, }; diff --git a/scss/topic-cards.scss b/scss/topic-cards.scss index 8c2905c..8e44ad4 100644 --- a/scss/topic-cards.scss +++ b/scss/topic-cards.scss @@ -40,6 +40,7 @@ grid-column-gap: 12px; grid-row-gap: 8px; border-radius: var(--d-border-radius); + cursor: pointer; td.main-link .link-top-line { grid-row: 1/2;